67,515
社区成员
发帖
与我相关
我的任务
分享
@Test
public void test() throws Exception {
Map<String, Object> map1_1 = EntityUtil.create(Map.class, new String[] { "id", "name" }, new Object[] { "1", "zhang" });
Map<String, Object> map1_2 = EntityUtil.create(Map.class, new String[] { "id", "name" }, new Object[] { "2", "li" });
List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
list1.add(map1_1);
list1.add(map1_2);
Map<String, Object> map2_1 = EntityUtil.create(Map.class, new String[] { "age" }, new Object[] { "10" });
List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
list2.add(map2_1);
List<List<Map<String, Object>>> values = new ArrayList<List<Map<String, Object>>>();
values.add(list1);
values.add(list2);
List<Map<String, Object>> result = merge(values);
System.out.println(EntityUtil.toJson(result));
}
/**
* 数据合并
*
* @param values 多份数据
* @return List
*/
public static List<Map<String, Object>> merge(List<List<Map<String, Object>>> values) {
BigDecimal[] sizes = new BigDecimal[values.size()];
for (int i = 0; i < values.size(); i++) {
sizes[i] = BigDecimal.valueOf(values.get(i).size());
}
bubbleSort(sizes, true);
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
for (int i = 0; i < sizes[0].intValue(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
for (List<Map<String, Object>> value : values) {
if (value.size() > i) {
map.putAll(value.get(i));
}
}
result.add(map);
}
return result;
}
/**
* 冒泡排序
*
* @param array 数组
* @param isDesc 是否降序
*/
public static void bubbleSort(BigDecimal[] array, boolean isDesc) {
array = (null == array ? new BigDecimal[] {} : array);
BigDecimal number = BigDecimal.ZERO;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (!isDesc) {
if (array[i].doubleValue() < array[j].doubleValue()) {
number = array[i];
array[i] = array[j];
array[j] = number;
}
}
if (isDesc) {
if (array[i].doubleValue() > array[j].doubleValue()) {
number = array[i];
array[i] = array[j];
array[j] = number;
}
}
}
}
}
[{"name":"zhang","age":"10","id":"1"},{"name":"li","id":"2"}]