List分组的两种方式

java8之前List分组

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

public Map> groupList(List students) {
	Map> map = new Hash<>();
	for (Student student : students) {
		List 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> groupList(List students) {
	Map> map = students.stream().collect(Collectors.groupingBy(Student::getName));
	return map;
}

你可能感兴趣的:(java基础)