zoukankan      html  css  js  c++  java
  • Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数 1 7. //按性别获取用户名称 1 16. //按性别求年龄的总和 1 2

    Atitit 集合分组聚合操作sum count avg java版本groovy版本

     

    目录

    1. //按性别统计用户数 1

    7. //按性别获取用户名称 1

    16. //按性别求年龄的总和 1

    23. //按性别求年龄的平均值 2

    3. //获取所有用户的平均年龄 2

    12. //获取所有用户的年龄总和 2

    1. Groovy  sum 3

    2. Groupby 原理。。 4

    2.1. Step1 groupby  returns Map<grpbyKey, List> 4

    2.2. Step2    transform List into Map,key is grpbyKey,value is sumAvgListMapProp 4

    2.3. collect 4

    3. ref 4

     

    1. //按性别统计用户数
    2. Map<User.Sex, Integer> map = users.parallelStream().collect(
    3. Collectors.groupingBy(User::getGender,
    4. Collectors.summingInt(p -> 1)));
    5. System.out.println(map); 
    6.  
    7. //按性别获取用户名称
    8. Map<User.Sex, List<String>> map2 = users.stream()
    9. .collect(
    10. Collectors.groupingBy(
    11. User::getGender,
    12. Collectors.mapping(User::getName,
    13. Collectors.toList())));
    14. System.out.println(map2); 
    15.  
    16. //按性别求年龄的总和
    17. Map<User.Sex, Integer> map3 = users.stream().collect(
    18. Collectors.groupingBy(User::getGender,
    19. Collectors.reducing(0, User::getAge, Integer::sum)));
    20.  
    21. System.out.println(map3);
    22.  
    23. //按性别求年龄的平均值
    24. Map<User.Sex, Double> map4 = users.stream().collect(
    25. Collectors.groupingBy(User::getGender,
    26. Collectors.averagingInt(User::getAge)));
    27. System.out.println(map4); 

     

     

     

    1. // 注意,reduce操作每处理一个元素总是创建一个新值,
    2. // Stream.reduce适用于返回单个结果值的情况
    3. //获取所有用户的平均年龄
    4. private static void reduceAvg() {
    5. // mapToInt的pipeline后面可以是average,max,min,count,sum
    6. double avg = users.parallelStream().mapToInt(User::getAge)
    7. .average().getAsDouble(); 
    8.  
    9. System.out.println("reduceAvg User Age: " + avg);
    10. } 
    11.  
    12. //获取所有用户的年龄总和
    13. private static void reduceSum() {
    14. double sum = users.parallelStream().mapToInt(User::getAge)
    15. .reduce(0, (x, y) -> x + y); // 可以简写为.sum()
    16.  
    17. System.out.println("reduceSum User Age: " + sum);
    18. }

     

    1. Groovy  sum

     

     

     

    def errorCodeList = [

    [code: "code1", language: 2, content: "aaa"],

    [code: "code1", language: 4, content: "bbbb"],

     

    [code: "code2", language: 3, content: "ccc"],

     

    ]

     

    //  first groupBy, which returns Map<grpbyKey, List>

    def b =  errorCodeList.groupBy {

    it.code

    }.collect  {

     

    //Entries

    // ...and transform List into Map

      code, List value ->

        def line=[(code): value.sum { e->e.language }]

            return  line

    //return a map

     

    }

     

    //[code1:6, code2:3]

    println b

     

    1. Groupby 原理。。
      1. Step1 groupby  returns Map<grpbyKey, List>
      2. Step2    transform List into Map,key is grpbyKey,value is sumAvgListMapProp
      3. collect  
    2. ref

     

     

    JDK1.8聚合操作.mhtml

  • 相关阅读:
    keepalived+httpd 高可用
    网卡绑定配置文件
    elk安装
    mysql数据库
    sed
    kvm
    日常巡检
    haproxy
    (6)PY_(study)
    (5)PY_(study)
  • 原文地址:https://www.cnblogs.com/attilax/p/15197359.html
Copyright © 2011-2022 走看看