list集合之流操作

1、根据某一字段进行去重(分组)

List<Object> list = objectList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Object::getId))), ArrayList::new));

2、实体集合获取某一字段的合集中

List<Long> ids= objectList.stream().map(Object::getId).collect(Collectors.toList());

3、实体集合中的某一字段相加

BigDecimal addResut= objectList.stream().map(Object::getBigDecimal).reduce(BigDecimal.ZERO, BigDecimal::add);
//两束相减同理只需要修改add为subtract,那样我们就能得到加减乘除这些运算
BigDecimal subtract= objectList.stream().map(Object::getBigDecimal).reduce(BigDecimal.ZERO, BigDecimal::subtract);

4、实现排序(升序、降序、多字段排序)

//自然排序
list = list.stream().sorted().collect(Collectors.toList());
//根据年龄升序排序
list = list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());
//自然倒序
list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
//根据年龄自然倒序
list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());
//多字段排序
//先按姓名升序,姓名相同则按年龄升序 list = list.sorted(Comparator.comparing(Student::getName).thenComparing(Student::getAge)).collect(Collectors.toList());

  

posted @ 2022-09-08 11:21  chelsey3tsf  阅读(104)  评论(0)    收藏  举报