Stream的分组和分区方法案例
代码示例
public class StreamTest05 {
public static void main(String[] args) {
List<Student> students = Arrays
.asList(new Student("张三",60,18),
new Student("李四",85,19),
new Student("王五",70,20),
new Student("赵丽颖",50,21),
new Student("杨幂",70,22),
new Student("张三",60,23));
//根据姓名分组
System.out.println(students.stream().collect(Collectors.groupingBy(Student::getName)));
//根据分数分组
System.out.println(students.stream().collect(Collectors.groupingBy(Student::getScore)));
//根据score分组,返回score和分组的个数
System.out.println(students.stream().collect(Collectors.groupingBy(Student::getScore, Collectors.counting())));
//根据score分区
System.out.println(students.stream().collect(Collectors.partitioningBy(student -> student.getScore() >= 60)));
}
}