java list stream 使用
1、实现List对象集合的简单去重(distinct())
List<User> list = list.stream().distinct().collect(Collectors.toList());
2、实现List集合的根据属性(name)去重
list = list.stream().filter(o -> o.getName() != null).collect( Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName()))),ArrayList<Aoo>::new));
3、实现List对象集合的简单过滤(过滤为 null 的对象)
List<User> list = list.stream().filter(item -> item != null).collect(Collectors.toList());
4、实现List对象集合中获取其中某一属性的List集合
List<String> collect = apples.stream().map(User::getName).collect(Collectors.toList());
5、 现List对象集合中根据对象的某一属性进行分组
Map<String, List<User>> userMap = list.stream().collect(Collectors.groupingBy(User :: getName));
6、实现List对象集合中求和、最大、最小、平均的统计
Long sum = list.stream().mapToLong(User::getAge).sum(); //和
Double max = list.stream().mapToDouble(User::getAge).max(); //最大
Integer = list.stream().mapToInt(User::getAge).min(); //最小
OptionalDouble average = list.stream().mapToDouble(User::getAge).average(); //平均值
7、实现List对象集合的分页
List<User> resultList = list.stream().skip(pageSize * (currentPage - 1)).limit(pageSize).collect(Collectors.toList());