java8特性:Collectors.groupingBy进行分组、排序等操作
2017-11-20 19:57
357 查看
本篇是对博文进行汇总和拓展。
假设已有实体类
public class Student{ private Integer id; private String name; ... }
重点1:Collectors类里边相关函数
重点2:collect函数
稍后进行源码分析
1.相关测试代码
package javaX.util.function; import javaX.Model.Student; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * @author dugenkui * on 2017/11/20. */ public class FunctionX { public static void main(String[] args) { //1.分组计数 List<Student> list1= Arrays.asList( new Student(1,"one","zhao"),new Student(2,"one","qian"),new Student(3,"two","sun")); //1.1根据某个属性分组计数 Map<String,Long> result1=list1.stream().collect(Collectors.groupingBy(Student::getGroupId,Collectors.counting())); System.out.println(result1); //1.2根据整个实体对象分组计数,当其为String时常使用 Map<Student,Long> result2=list1.stream().collect(Collectors.groupingBy(Function.identity(),Collectors.counting())); 4000 System.out.println(result2); //1.3根据分组的key值对结果进行排序、放进另一个map中并输出 Map<String,Long> xMap=new HashMap<>(); result1.entrySet().stream().sorted(Map.Entry.<String,Long>comparingByKey().reversed()) //reversed不生效 .forEachOrdered(x->xMap.put(x.getKey(),x.getValue())); System.out.println(xMap); //2.分组,并统计其中一个属性值得sum或者avg:id总和 Map<String,Integer> result3=list1.stream().collect( Collectors.groupingBy(Student::getGroupId,Collectors.summingInt(Student::getId)) ); System.out.println(result3); } }
相关文章推荐
- java8特性:Collectors.groupingBy进行分组、排序等操作 (二)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- SQL进行排序、分组、统计的10个新技巧(个人总结)-------Mondify By LiFuyun
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- java 比较器 对多个对象进行排序操作
- Java表格仿mysql实现基本操作(连接,分组排序,统计等)
- JAVA中对LIST进行排序操作
- 分组 根据某一列进行排序,根据shopid分组,用createTime排序,返回row_number()序号 select no =row_number() over (partition by shopId order by createTime desc), * from Goods_info
- spark对分组后value值进行排序(JAVA)
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
- Java 8 Stream Collectors groupingBy 示例
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)
- spark对分组后value值进行排序(JAVA)