public static void main(String[] args) {
Map<Long, List<Long>> map = new HashMap<>(16);
List<Long> list1 = new ArrayList<>();
list1.add(1L);
list1.add(2L);
List<Long> list2 = new ArrayList<>();
list2.add(2L);
list2.add(3L);
List<Long> list3 = new ArrayList<>();
list3.add(3L);
list3.add(4L);
List<Long> list4 = new ArrayList<>();
list4.add(5L);
list4.add(6L);
List<Long> list5 = new ArrayList<>();
list5.add(6L);
list5.add(7L);
map.put(1L,list1);
map.put(2L,list2);
map.put(3L,list3);
map.put(4L,list4);
map.put(5L,list5);
Map<List<Long>,List<Long>> map2 = new HashMap<>(16);
List<Long> keyList = new ArrayList<>();
List<Long> valueList = new ArrayList<>();
map.forEach((key, value)->{
System.out.println("外層key: " + key);
List<Long> list = new ArrayList<>();
map.forEach((key1, value1)->{
System.out.println("內層key :" +key1);
if(!Collections.disjoint(value,value1) && !key.equals(key1)) {
System.out.println("key: "+ key +":" +key1);
System.out.println("value: "+ value +":" +value1);
keyList.add(key);
keyList.add(key1);
valueList.addAll(value);
valueList.addAll(value1);
}/*else{
System.out.println("not join key: "+ key +":" +key1);
System.out.println("not join value: "+ value +":" +value1);
}*/
});
});
System.out.println("keyList: " + Arrays.toString(keyList.stream().distinct().toArray()));
System.out.println("valueList: " + Arrays.toString(valueList.stream().distinct().toArray()));
}
舉例: list1,list2,list3 含有重復元素 ,map2中key ->list 放map中list1,list2,list3對應的key的集合[1,2,3],value->list 放 list1,list2,list3去重后的list[1,2,3,4]。
期望結果 map2: key:[1,2,3] value:[1,2,3,4]; key:[4,5] value:[5,6,7]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242482.html
標籤:Java EE
上一篇:Java web
