美文网首页
java8 代码备份 方便查找

java8 代码备份 方便查找

作者: Noloty | 来源:发表于2018-09-22 21:28 被阅读0次
  1. java8 代码备份 方便查找
  2. Mac OS 系统 用过大 部分 解决方案
  3. 代码协同管理工具-git
  4. Mac 让终端走代理的几种方法
  5. List 去重 | List对象去重 by ja
  6. MNIST下载 测试数据
  7. Java8 的各种骚操作(List->Map、过滤、类型转
  8. NSArray的一些detail
  9. swift navigation title 标题颜色代码设置
  10. Xcode快捷键合集
  11. 使用java8的语法将List<Object>组装成Map, key为Object里的主键(一对多)

    List<Order> orderList ; //伪代码 表示下类型
         //组装成返回结构
            //key:orderId value:SimpleOrderList
    Map<Integer, List<SimpleOrder>> map = orderList.stream().collect(Collectors.toMap(Order::getOrderId,
                            new Function< Order, List< SimpleOrder >>() {
                                @Override
                                public List< SimpleOrder > apply(Order order) { return Lists.newArrayList(new SimpleOrder(order.getOrderId(), order.getUserId())); }
                            }, 
                            (l1, l2) -> { if (l1.size() < limitNum) {l1.addAll(l2);} return l1; }
                    ));
    

    value非List的情况

    List<Order> orderList ;
    Map<Integer, Order > map = orderList.stream().collect(Collectors.toMap(Order::getSellerId, item -> item));
    

    从List中取其中的属性组成Map

    List<Order> orderList ;
    List<Integer> sellerIds = orderList.stream().map(Order::getSellerId).collect(Collectors.toList());
    

    List的BigDecimal属性求最大值/最小值/求和/求平均值

    //求最大值
    BigDecimal max = userList.stream().map(User::getWeight).max((x1, x2) -> x1.compareTo(x2)).get();
    //求最小值
    BigDecimal min = userList.stream().map(User::getWeight).min((x1, x2) -> x1.compareTo(x2)).get();
    //求和
    BigDecimal sum = userList.stream().map(User::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
    //求平均值
    BigDecimal average = userList.stream().map(User::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(userList.size()), 2,  BigDecimal.ROUND_HALF_UP);
    

    分组统计BigDecimal类型的数据

    Map<String, BigDecimal> specGroup = pageList.stream().collect(Collectors.groupingBy(i -> i.getSpec(), Collectors.reducing(BigDecimal.ZERO, ShipmentOutEntity::getNetWeight, BigDecimal::add)));
    

    相关文章