使用Java 8中的新特性Stream API对一个List进行过滤、排序和收集操作,Lambda表达式。

list = list.stream().filter(f->f.getProbability().compareTo(BigDecimal.ZERO)>=0).sorted(Comparator.comparing(AwardSign::getProbability)).collect(Collectors.toList());

这段代码使用了Java 8中的Stream API对一个列表进行了过滤、排序和收集操作。

首先,list是一个列表(List)对象。通过调用stream()方法,将列表转换为一个流(Stream)对象,以便进行后续的操作。

接下来,使用filter()方法对流中的元素进行过滤。在这里,使用了Lambda表达式:

f -> f.getProbability().compareTo(BigDecimal.ZERO) >= 0作为过滤条件。该条件表示只保留满足概率大于等于0的元素。

(probability这个属性是我当前AwardSign这个类中的一个属性,你要对什么类型的List做操作由你自己定,过滤条件也是自己定,过滤条件直接写在filter()方法里面即可)

然后,使用sorted()方法对流中的元素进行排序。在这里,使用了Comparator.comparing(AwardSign::getProbability)作为排序的依据。该比较器表示按照AwardSign对象的概率属性进行升序排序。

注:Comparator.comparing()是Java中的一个静态方法,创建一个升序比较器(Comparator)对象,用于使用对象的某个属性进行比较。

创建降序比较器Comparator.reverseOrder()。

比较器的使用方法是把创建的比较器对象丢到 list.sort() 里面去即可按照想要的属性、想要的顺序排序,但是这个方法最好少用,占用资源比sql中使用排序大。

最后,使用collect()方法将过滤和排序后的元素收集到一个新的列表中。在这里,使用了Collectors.toList()来生成一个新的列表对象。

最终,这段代码的作用是对原始列表进行过滤,只保留概率大于等于0的元素,并按照概率属性进行升序排序,然后将结果收集到一个新的列表中。

希望我用到的这个例子对你有帮助。如果你还有其他问题,可以评论或者私信。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值