700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > lambda表达式 java求和_java 8 stream lambda表达式对list操作分组 过滤 求和 最值 排序 去重...

lambda表达式 java求和_java 8 stream lambda表达式对list操作分组 过滤 求和 最值 排序 去重...

时间:2023-04-30 13:26:21

相关推荐

lambda表达式 java求和_java 8 stream lambda表达式对list操作分组 过滤 求和 最值 排序 去重...

1.分组

通过groupingBy分组指定字段

list.stream().collect(Collectors.groupingBy(User::getSex));

2.过滤

通过filter方法过滤某些条件

list.stream().filter(a -> !a.getJobNumber().equals("01")).collect(Collectors.toList());

3.求和

基本类型:先mapToInt,然后调用sum方法

List.stream().mapToInt(User::getAge).sum();

大数类型:reduce调用BigDecimal::add方法

List.stream().map(User::getFamilyMemberQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);

4.最值

最大值

List.stream().map(User::getEntryDate).max(Date::compareTo).get();

最小值

List.stream().map(User::getEntryDate).min(Date::compareTo).get();

5.排序

list.stream().sorted((o1, o2)->o1.getItem().getValue().

compareTo(o2.getItem().getValue())).

collect(Collectors.toList());

sort()

单字段排序,根据id排序list.sort(paring(Obj::getItem));

多字段排序,根据id,年龄排序list.sort(paring(Obj::getItem).thenComparing(Obj::getItem));

6.去重

通过distinct方法

List.stream().distinct().collect(Collectors.toList());

对属性

重写方法

7.获取list某个字段组装新list

List.stream().map(a -> a.getId()).collect(Collectors.toList());

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。