java8 代码备份 方便查找

使用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)));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 前前后后历时两个月第一本莫言的书算是读完了,2017年结尾的时候我给自己定下了2018的年目标,其中有一个目标...
    大山深处的狗尾巴草阅读 2,394评论 3 1
  • 今天接到了战友的一通电话,聊了聊往昔的军旅岁月和现在各自的生活。我两年义务兵役结束之后就退伍了,他选择了继续服役,...
    妄_念阅读 186评论 0 0
  • 1.面试评估表:含目前的薪酬信息,期望的薪酬信息,全部项目都为必填项,含一面和二面评价2.身份证复印件3.个人简历...
    FlyTheKite阅读 137评论 1 0
  • 今天不讲课。出去看花,心,如,花开。 你对自己的态度,就是你的人生。 若带着爱、一生充满爱,若带着不满,处处都不满...
    艳子阳光森林课程阅读 175评论 0 0