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