java使用stream流方式根据某一属性过滤list对象集合

今天工作偶然碰到需要根据某一属性过滤一个list集合,经过查找看到了这种stream流的过滤方式,感觉还是有点意思,以后也会用到,特此记录一下

ArrayList<IcsCloudDTO> collect3 = icsCloudDTOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->
                new TreeSet<>(Comparator.comparing(item->item.getBrandModelId()))), ArrayList::new));

该方法主要是将集合放在TreeSet中,并且传入一个根据某个属性进行比较的比较器,最终将TreeSet放入构造器中生成一个新的list。

Collectors.collectingAndThen方法是对结果集进行收集后进行下一步处理,可以点进去看一下方法传参

public static<T,A,R,RR> Collector<T,A,RR> collectingAndThen(Collector<T,A,R> downstream,
                                                          Function<R,RR> finisher) 

两个参数,一个Collector接口的子类,一个Function函数,就很清晰了,Function函数:R apply(T t),调用ArrayList的有参构造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值