public static void main(String[] args) {
List<NewTagDto> list = new ArrayList<NewTagDto>();
NewTagDto dto1 = new NewTagDto();
dto1.setId(1L);
dto1.setTagName("A");
NewTagDto dto2 = new NewTagDto();
dto2.setId(1L);
dto2.setTagName("C");
list.add(dto1);
list.add(dto2);
NewTagDto dto3 = new NewTagDto();
dto3.setId(2L);
dto3.setTagName("B");
NewTagDto dto4 = new NewTagDto();
dto4.setId(2L);
dto4.setTagName("D");
list.add(dto3);
list.add(dto4);
Map<Long, List<NewTagDto>> map = list.stream().collect(Collectors.groupingBy(NewTagDto::getId));
Map<Long, Map<String, NewTagDto>> map = list.stream().collect(Collectors.groupingBy(NewTagDto::getId,
Collectors.collectingAndThen(Collectors.toList(),
list1 -> getListNameMap(list))));
Map<Long, Map<String, NewTagDto>> map = list.stream().collect(Collectors.groupingBy(NewTagDto::getId,
Collectors.collectingAndThen(Collectors.toList(),
list1 -> list1.stream().collect(Collectors.toMap(NewTagDto::getTagName, dto ->dto)))));
System.out.println(map);
}
System.out.println(map);
}
private static Map<String, NewTagDto> getListNameMap(List<NewTagDto> list1) {
Map<String, NewTagDto> map = new HashMap<String, NewTagDto>();
String name = list1.stream().map(dto -> {return dto.getTagName();}).collect(Collectors.joining(","));
map.put(name, list1.get(0));
return map;
}
list分区后,转map
最新推荐文章于 2024-01-14 20:20:16 发布