java List 如何进行分组
1、第一步:javalist分组的需求实现思路。一班情况下我们遇到这种情况都是在List集合中放的是对象的情况下,我们需要将根据对象的某一个属性值或多个属性值分组。实现方式还是比较多的,1、借助jdk1.8新提供的Collectors.groupingBy2、借助于for或者请它循环,当然原始for循环的执行速度是最快的。
2、第二步:jdk1.8新方法实现。先编写实体类:Studentpublic class Student { public Student(String name, String sex, String grade) { this.name = name; this.sex = sex; this.grade = grade; } private String name; private String sex; // 班级 private String grade; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; }}在编写测试类:Testimport java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;public class Test { public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); Student student1 = new Student("李四1", "女", "一班"); Student student2 = new Student("李四2", "女", "一班"); Student student3 = new Student("李四3", "女", "一班"); Student student4 = new Student("李四4", "男", "一班"); Student student5 = new Student("李四5", "男", "一班"); Student student6 = new Student("李四6", "男", "二班"); Student student7 = new Student("李四7", "男", "二班"); Student student8 = new Student("李四8", "男", "二班"); Student student9 = new Student("李四9", "男", "二班"); list.add(student1); list.add(student2); list.add(student3); list.add(student4); list.add(student5); list.add(student6); list.add(student7); list.add(student8); list.add(student9); List<List<Student>> groupList = new ArrayList<List<Student>>(); list.stream().collect(Collectors.groupingBy(Student::getGrade, Collectors.toList())).forEach((grade, fooListByAge) -> { studentList.forEach((student) -> System.out.println(student.getGrade())); }); }}



