code: public static <K, V> List<Map<K, V>> toMapList(Map<K, ? extends Iterable<V>> listMap) {
  		final List<Map<K, V>> resultList = new ArrayList<>();
  		if (isEmpty(listMap)) {
  			return resultList;
  		}
  
  		boolean isEnd = true;// 是否结束。标准是元素列表已耗尽
  		int index = 0;// 值索引
  		Map<K, V> map;
  		do {
  			isEnd = true;
  			map = new HashMap<>();
  			List<V> vList;
  			int vListSize;
  			for (Entry<K, ? extends Iterable<V>> entry : listMap.entrySet()) {
  				vList = CollectionUtil.newArrayList(entry.getValue());
  				vListSize = vList.size();
  				if (index < vListSize) {
  					map.put(entry.getKey(), vList.get(index));
  					if (index != vListSize - 1) {
  						// 当值列表中还有更多值（非最后一个），继续循环
  						isEnd = false;
  					}
  				}
  			}
  			if (false == map.isEmpty()) {
  				resultList.add(map);
  			}
  			index++;
  		} while (false == isEnd);
  
  		return resultList;
  	}
docs: 列转行。将Map中值列表分别按照其位置与key组成新的map。<br>
  是{@link #toListMap(Iterable)}的逆方法<br>
  比如传入数据：
  
  <pre>
  {
  a: [1,2,3,4]
  b: [1,2,3,]
  c: [1]
  }
  </pre>
  
  结果是：
  
  <pre>
  [
  {a: 1, b: 1, c: 1}
  {a: 2, b: 2}
  {a: 3, b: 3}
  {a: 4}
  ]
  </pre>
  
  @param <K> 键类型
  @param <V> 值类型
  @param listMap 列表Map
  @return Map列表