java8对list进行统计合并

java8 对list进行统计合并

最近在开发中遇到多次合并统计的问题,很是头疼,经过摸索,找出可行方案,接下来分享给大家

遇到的问题是,查询出list进行分析,根据某个key ,进行统计并返回数据,

public class Sudent {
    
    String id;
    String name;
    String banji;
    int cnt;
}



List<Student> resultList = Lists.newLinkedList();
for(int i=0;i<10;i++{
	Student stu = new Student();
	stu.setid(i);
	stu.setname(i+"a");
	stu.setbanji("5班");
	Student.add(stu);
}
for(int i=0;i<10;i++{
	Student stu = new Student();
	stu.setid(i);
	stu.setname(i+"b");
	stu.setbanji("4班");
	Student.add(stu);
}

这部分代码才是浓缩的精华

Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组

###统计出每个班级的人数

Map<String, Long> collect  = resultList.stream().collect(Collectors.groupingBy(t->t.getBanji(),Collectors.counting()));
//key 指的是班级
  for(String key : collect.keySet()){
  		//统计出的班级人数
         Long value = collect.get(key);
}

剩余的部分就很简单了,各位自由发挥吧

你可能感兴趣的:(Java,java)