lambda常用操作

list取出某一属性

List<String> data = list.stream().map(article->article.getTitle()).collect(Collectors.toList());

list BigDecimal金额统计

BigDecimal sumCost = list.stream().map(InsuranceBill::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);

list过滤

List<ZbxSchemeProInfo> optimizProlsit = proInfos.stream().filter(proinfo -> proinfo.getOptimization() == 1).collect(Collectors.toList());

list根据属性去重

List<Product> products = data.getData().getProducts();
 //根据casecode去重
products = products.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getCaseCode()))),
                    ArrayList::new));

根据属性过滤list1中已存在list2的数据

//第一种方式
List<Product> newProducts = products.stream().filter(product -> !(list.stream().filter(item -> item.getCaseCode().equals(product.getCaseCode())).findFirst()).isPresent()).collect(Collectors.toList());

//第二种方式(有任意元素满足,则过滤掉)
List<WxContentsUserLike> newList = redisAll.stream().filter(like -> !(existsList.stream()
                    .parallel().anyMatch(item ->
                                    item.getBussinessId().intValue() == like.getBussinessId()
                                    && item.getBussinessType().intValue() == like.getBussinessType()
                                    && item.getUserId().equals(like.getUserId())
                            )
                    )).collect(Collectors.toList());
//或者(所有元素都不满足则是最新的)
List<WxContentsUserLike> newList = redisAll.stream().filter(like -> existsList.stream()
                    .parallel().noneMatch(item ->
                                    item.getBussinessId().intValue() == like.getBussinessId()
                                    && item.getBussinessType().intValue() == like.getBussinessType()
                                    && item.getUserId().equals(like.getUserId())
                            )
                    ).collect(Collectors.toList());

查询list中符合要求的一条数据,没有则返回空

WxActionStatisVO actionStatisVO = actionStatisVOS.stream().filter(item -> "test".equals(item.getName()) && "2019-05-21".equals(item.getViewDate())).limit(1).filter(Objects::nonNull).findFirst().orElse(null);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值