java8-map操作实例

矫情吗;* 2023-06-29 12:59 78阅读 0赞
  • 抽取集合对象属性

    • 循环打印

      1. list.stream().map(Location::getId).forEach(System.out::println);
    • 属性转List集合

      1. List<String> skus = list.stream().map(Goods::getSku).collect(Collectors.toList());
  • List转set

    1. Set<String> kSet = keys.stream().map(k -> k).collect(Collectors.toSet());
  • List转map

    1. Map<String,InventoryAdjustment> adjustments = list.stream()
    2. .map(InventoryChange::getAdjustment).collect(Collectors.toList())
    3. .stream().collect(Collectors.toMap(InventoryAdjustment::getCreatedAt, adjustment->adjustment,(key1, key2)->key1));
  • List去重(distinct())

    1. List<Integer> goodsIds = list.stream().map(OrderDetail::getGoodsId).distinct().collect(Collectors.toList());
  • 内部操作数据

    1. List<MiddleRedisSkuStock> skuStockList = values.stream().filter(StringUtils::isNotBlank).map(
    2. value -> JSON.parseObject(value, MiddleRedisSkuStock.class)
    3. ).collect(Collectors.toList());
  • 数值计算

    • BigDecimal求和

      1. BigDecimal amount = list.stream().map(OrderDetail::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
    • Integert求和

      1. list.stream().mapToInt(SalesOrderDetail::getGoodsSum).sum();
    • 获取集合属性最小值

      1. BigDecimal minUnitPrice = list.stream().map(GoodsSku::getUnitPrice).min((u1, u2)->u1.compareTo(u2)).get();

发表评论

表情:
评论列表 (有 0 条评论,78人围观)

还没有评论,来说两句吧...

相关阅读