跳至主要內容

Group by 使用

Zhao Bin笔记backendcode-snippetsjava

Group by 使用

多个字段的 Group By

list.stream()
  .filter(item -> item.getDate() <= curDate)
  .collect(Collectors.groupingBy(item -> item.getClass() + "_" + item.getName(),
    Collectors.maxBy(Comparator.comparing(ADto::getScore)))
  .values()
  .stream()
  .collect(Collectors.toList())
  .stream()
  .filter(item -> item.isPresent())
  .map(item -> item.get())
  .collect(Collectors.toList());
Map<String, List<AClass>> groupedMap = list.stream()
  .collect(Collectors.groupingBy(a -> a.getClass() + "," + a.getName() + "," + a.getType()),
              LinkedHashMap::new,
              Collectors.toList()));