public static void main(String[] args) { List<User> l = Arrays.asList(new User("a", 0), new User("b", 0), new User("c", 1)); Map<Integer, List<String>> collect = l.stream().collect(Collectors.groupingBy(User::getType, Collectors.mapping(User::getName, Collectors.toList()))); Map<Integer, Set<String>> collect1 = l.stream().collect(Collectors.groupingBy(User::getType, Collectors.mapping(u -> u.getName() + "qwe", Collectors.toSet()))); Map<Integer, String> collect2 = l.stream().collect(Collectors.groupingBy(User::getType, Collectors.mapping(User::getName, Collectors.joining(",")))); List<User> collect3 = l.stream().collect(Collectors.toMap(User::getName, Function.identity(), (c1, c2) -> c1.getType() > c2.getType() ? c1 : c2)).values().stream().sorted(Comparator.comparing(User::getType)).collect(Collectors.toList()); System.out.println(collect); System.out.println(collect1); System.out.println(collect2); System.out.println(collect3); } @Data @NoArgsConstructor @AllArgsConstructor public static class User { private String name; private int type; }
分享