/**
* 比较两个list集合中map:childList 中 包含 parentList的 map 中的 key值,如果相等重新放到一个map<String,List<Map<String,String>>里
*
* */
public static Map<String, List<Map<String, String>>> getMapByKeyId(List<Map<String, String>> parentList,
List<Map<String, String>> childList, String keyId) {
Map<String, List<Map<String, String>>> newMap = new HashMap<String, List<Map<String, String>>>();
for (int i = 0; i < parentList.size(); i++) {
Map<String, String> list1Map = parentList.get(i);
String value = list1Map.get(keyId);
List<Map<String, String>> newList = new ArrayList<Map<String, String>>();
for (int j = 0; j < childList.size(); j++) {
Map<String, String> map = childList.get(j);
if (map.get(keyId).equals(value))
newList.add(map);
}
newMap.put(value, newList);
}
return newMap;
}
调用方法:
Map<String, List<Map<String,String>>> mapNew2 = getMapByKeyId(list1,list2,"aid");
Map<String, List<Map<String,String>>> mapNew3 = getMapByKeyId(list2,list3,"bid");