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