List分组的两种方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ji519974770/article/details/83549240

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;
}

猜你喜欢

转载自blog.csdn.net/ji519974770/article/details/83549240
今日推荐