比较两个list集合中地图 是否相等,如果相待,重新组成一个分组后的地图
比较两个list集合中map 是否相等,如果相待,重新组成一个分组后的map
/** * 比较两个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");