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;
}
本文对比了Java8之前和Java8中对List进行分组的方法。在Java8前,通过传统循环实现分组;Java8引入Stream API,简化分组操作,仅一行代码即可完成。示例代码清晰展示了两种方法的实现细节。
1748

被折叠的 条评论
为什么被折叠?



