代码
// 引入了两个静态方法,以及通过 TreeSet<> 来达到获取不同元素的效果 import static java.util.stream.Collectors.collectingAndThen; import static java.util.stream.Collectors.toCollection; // 初始化 List<User> userList = new ArrayList<User>() {{ add(new User(1L, "张一", "男")); add(new User(1L, "张一", "男")); add(new User(2L, "张二", "男")); add(new User(3L, "张三", "男")); add(new User(4L, "张四", "女")); add(new User(4L, "张四", "男")); add(new User(5L, "张五", "男")); add(new User(5L, "张六", "男")); add(new User(5L, "张七", "男")); }}; // 筛选,根据User对象ID属性去重,并创建新的集合存放筛选过后的对象 List<User> collect = userList.stream().collect( collectingAndThen( toCollection(() -> new TreeSet<>(Comparator.comparing(User::getId))), ArrayList::new ) ); // 打印 for (User user : collect) { System.out.println("user = " + user); }
打印结果