// 交集
List intersection = numberList.stream().filter(item -> letterList.contains(item)).collect(Collectors.toList());
// 差集 (list1 - list2)
List<String> reduce1 = numberList.stream().filter(item -> !letterList.contains(item)).collect(toList());
List reduce=ls.stream().filter(item -> !list.stream().map(q->q.getType()).collect(Collectors.toList()).contains(item.getValue())).collect(Collectors.toList());
// 去重
List listAllDistinct = listAll.stream().distinct().collect(toList());
//对象获得其中一个属性的集合
users.stream().map(User::getName).collect(Collectors.toList());
//对象获得其中一个属性的集合-----Set<String>---去重
users.stream().map(User::getState).collect(Collectors.toSet());
//Map-------------list to map----------------------------
users.stream().collect(Collectors.toMap(User::getName, user -> user));
users.stream().collect(Collectors.toMap(User::getName, User::getDesc));
Map<String,BigDecimal> mapOtherCost=otherCost.stream().collect(Collectors.toMap(PriOtherExpensesOfferSheet::getCode, PriOtherExpensesOfferSheet::getUnitPrice));
//对象转化
records=pageList.getRecords().stream().map(meta->{
QuoQuotaModel model=new QuoQuotaModel();
BeanUtils.copyProperties(meta, model);
model.setUnitPrice(quotaMap.get(meta.getId()).getUnitPrice());
return model;
}).collect(Collectors.toList());
//分组---------------------------------------------------
Map<String, List<User>> map=users.stream().collect(Collectors.groupingBy(User::getState, Collectors.toList()));
Map<String, List<String>> userMap= users.stream().collect(Collectors.groupingBy(User::getState, Collectors.mapping(User::getName, Collectors.toList())));
//--每个分类的数量(例子:统计国家人数)
Map<String, Long> countMap= users.stream().collect(Collectors.groupingBy(User::getState, Collectors.counting()));
//计算-------------------------------------------------------------
toShow("年龄总和", users.stream().map(User::getAge).collect(Collectors.reducing(0, (sum, item) -> sum + item)));;
integerList.stream().mapToInt(Integer::intValue).sum();
Map<Integer,BigDecimal> personalTotalFeeMap= priOfferSheetItems.stream().filter(meta->oConvertUtils.isEmpty(meta.getPackageId())).collect(Collectors.groupingBy(PriOfferSheetItem::getType,Collectors.collectingAndThen(Collectors.toList(),meta->meta.parallelStream().map(PriOfferSheetItem::getTotalPrice).reduce(BigDecimal.ZERO,BigDecimal::add))));
//集合逗号拼接,reduce
tags.stream().map(OrderTagEnum::toString).reduce((a, b) -> a + "," + b)
BigDecimal matFeeByA=priOfferSheetItems.stream().filter(meta->SysConstants.Common.FOR_A==meta.getProvider()).map(PriOfferSheetItem::getTotalPrice).collect(Collectors.reducing(new BigDecimal("0.00"),(sum, item)->BigDecimalUtils.add(sum,item)));
//("---计算 得到年龄最大---");
Optional<User> userOptional = users.stream().collect(Collectors.maxBy(Comparator.comparing(User::getAge)));
toShow("最大年龄", userOptional.get());
//-------------最小
Optional<ProductLimitPrice> lowestLimitPrice = list.stream().min(Comparator.comparing(ProductLimitPrice::getLowestPrice));
lowestLimitPrice.isPresent() ? lowestLimitPrice.get().getLowestPrice() : null
//("---计算 得到年龄平均值---");
double averageintAge = users.stream().collect(Collectors.averagingInt(User::getAge));