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);