List<Integer> list = Arrays.asList(1, 1, 2, 3, 4, 2, 1);
Map<Integer, List<Integer>> map = new HashMap<>();
for (Integer num : list){
// map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
if (map.containsKey(num)){
map.get(num).add(num);
}else{
// map不包含此key,则重新创建一个新集合,并把这个数字添加进集合
// ,再把集合放到map中
List<Integer> newList = new ArrayList<>();
newList.add(num);
map.put(num, newList);
}
}
System.out.println(map);
Map<Integer, List<Integer>> map1 = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.toList()));
System.out.println(map1);
Map<Integer, List<Integer>> map2 = list.stream().collect(Collectors.groupingBy(Function.identity()));
System.out.println(map2);