记录一些常用的stream:
//list转换成map,第一个参数是key,第二个参数是value,第三个参数是当key冲突的时候,首选v1的value
//此例为:将公司对象集合转换成{公司id:公司名称}的map
Map<Long, String> companyMap = companyList.stream().collect(Collectors.toMap(e -> e.getId(), e -> e.getName(), (v1, v2) -> v1));
//归约求和,reduce方法,第一个参数是起始值,
//第二个参数是 二元运算 可以将流中元素反复结合起来,得到一个值,返回
//此例为:合同对象集合,合同金额求和
BigDecimal estimateContractRebate = contractList.stream()
.map(Contract::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
//求出公司列表,然后按照创建时间倒序
List<Company> companyLast = companyService.list().stream().sorted(Comparator.comparing(Company::getCreateTime).reversed()).collect(Collectors.toList());
//返回任何一个匹配的元素
boolean present = list.stream().anyMatch(e -> !e.getId().equals(param.getId()));