- 两个List集合过滤并根据比较找出差集,并将差集归类为List
List<BetLimit> changeBetLimitList = list.stream().filter(item -> item.getSingleOrderMinStake() < oldData.getSingleOrderMinStake()).collect(Collectors.toList())
- List转Map
Map<Integer, BetLimit> oldBetLimitMap = oldBetLimitList.stream().collect(Collectors.toMap(BetLimit::getId, o -> o))
-
List提取属性放入List
List<Integer> betItemIdList = list.stream().map(Order::getBetItemId).distinct().collect(Collectors.toList());
- List通过join,转字符串
String inIds = accountIdList.stream().map(i -> i.toString()).collect(Collectors.joining(","));
- List<T> group by Map<Integer,List<T>>
Map<BigDecimal, List<Item>> groupByPriceMap=
items.stream().collect(Collectors.groupingBy(Item::getPrice));
- List<T> 多属性分组group by Map<Integer,Map<Integer,List<T>>
Map<Integer,Map<String,List<DocLotDetail>>> amp = docLotDetailLists.parallelStream().collect(Collectors.groupingBy(DocLotDetail::getGroupOrder,Collectors.groupingBy(DocLotDetail::getBaseValueName))); - List<T> 多属性唯一分组Map<Integer,Map<Integer,T>>
Map<Integer, Map<String, PercentDistribution>> percentDistributionLotteryMap = percentDistributionList.stream().collect (Collectors.groupingBy(PercentDistribution::getAccountId, Collectors.toMap (PercentDistribution::getLotteryCode, o -> o)));
8.BigDecimal求和
int totalBetStake = list.stream().map(Order::getBetStake).reduce(BigDecimal.ZERO, BigDecimal::add) .intValue();
9.groupBy转换Map类型
Map<Date, List<Order>> dateOrderMap = orderList.stream().collect(Collectors.groupingBy(Order::getReportDate, LinkedHashMap::new, Collectors.toList()));
10.List中对象多个属性求和,并返原对象
A a = list.stream() .reduce((x , y) -> new A( (x.getPrincipal() + y.getPrincipal()), (x.getFee() + y.getFee()) ) ).orElse( new A(0, 0) );
11.groupby 按某个属性分组,并收集为一个属性集合
Map<Integer, List<Integer>> collect = list.stream().collect(Collectors.groupingBy(record -> record .getInt("accountId"), Collectors.mapping(record -> record.getInt("permissionId"), Collectors.toList())