Java8 Steam 随笔记录

原创
2019/02/08 01:16
阅读数 953
  1. 两个List集合过滤并根据比较找出差集,并将差集归类为List
    List<BetLimit> changeBetLimitList = list.stream().filter(item -> item.getSingleOrderMinStake() < oldData.getSingleOrderMinStake()).collect(Collectors.toList())
  2. List转Map
    Map<Integer, BetLimit> oldBetLimitMap = oldBetLimitList.stream().collect(Collectors.toMap(BetLimit::getId, o -> o))

     

  3. List提取属性放入List
     

    List<Integer> betItemIdList = list.stream().map(Order::getBetItemId).distinct().collect(Collectors.toList());
  4. List通过join,转字符串
    String inIds = accountIdList.stream().map(i -> i.toString()).collect(Collectors.joining(","));
  5. List<T> group by Map<Integer,List<T>>
    Map<BigDecimal, List<Item>> groupByPriceMap= items.stream().collect(Collectors.groupingBy(Item::getPrice));
  6. 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)));
  7. 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())
展开阅读全文
打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部