list 根据某个字段分组

Posted AresCarry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list 根据某个字段分组相关的知识,希望对你有一定的参考价值。

java8之前List分组
假设有个student类,有id、name、score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组。

public Map<String, List<Student>> groupList(List<Student> students) {
	Map<String, List<Student>> map = new Hash<>();
	for (Student student : students) {
		List<Student> tmpList = map.get(student.getName());
		if (tmpList == null) {
			tmpList = new ArrayList<>();
			tmpList.add(student);
			map.put(student.getName(), tmpList);
		} else {
			tmpList.add(student);
		}
	}
	return map;
}

java8的List分组

public Map<String, List<Student>> groupList(List<Student> students) {
	Map<String, List<Student>> map = students.stream().collect(Collectors.groupingBy(Student::getName));
	return map;
}

以上是关于list 根据某个字段分组的主要内容,如果未能解决你的问题,请参考以下文章

list分组------根据某一个字段分组

list分组------根据某一个字段分组

JDK8:Lambda根据 单个字段多个字段,分组求和

数组对象如何根据对象中某个字段分组

jdk1.8中list按对象的多个属性去重,按对象的某个属性分组

Java将List中的实体按照某个字段进行分组的算法