partitioningBy分组
# 根据list⾥⾯进⾏分组,字符串⻓度⼤于4的为⼀组,其他为另外⼀组
public class Main {
public static void main(String[] args) throws Exception {
List<String> list = Arrays.asList("java", "springboot", "HTML5", "CSS3");
Map<Boolean, List<String>> result = list.stream().collect(partitioningBy(obj -> obj.length() > 4));
System.out.println(result);
}
}
group by分组
# 根据学⽣所在的省份,进⾏分组
public class Main {
public static void main(String[] args) throws Exception {
List<Student> students = Arrays.asList(
new Student("广东", 23),
new Student("广东", 24),
new Student("广东", 23),
new Student("北京", 22),
new Student("北京", 20),
new Student("北京", 20),
new Student("海南", 25));
// 根据province分组
Map<String,List<Student>> listMap = students.stream().collect(Collectors.groupingBy(obj->obj.getProvince()));
listMap.forEach((key,value)->{
System.out.println("=======");
System.out.println(key);
value.forEach(obj->{
System.out.println(obj.getAge());
});
});
}
}
// 内部类
class Student {
private int age;
private String province;
public Student(String province, int age) {
this.province = province;
this.age = age;
}
public Student() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
}
分组统计
聚合函数进⾏统计查询,分组后统计个数
Collectors.counting() 统计元素个数
# 统计各个省份的⼈数
public class Main {
public static void main(String[] args) throws Exception {
List<Student> students = Arrays.asList(
new Student("广东", 23),
new Student("广东", 24),
new Student("广东", 23),
new Student("北京", 22),
new Student("北京", 20),
new Student("北京", 20),
new Student("海南", 25));
// 分组统计
Map<String,Long> listMap = students.stream().collect(Collectors.groupingBy(obj->obj.getProvince(),Collectors.counting()));
listMap.forEach((key,value)->{
System.out.println(key+"人数有"+value);
});
}
}
// 内部类
class Student {
private int age;
private String province;
public Student(String province, int age) {
this.province = province;
this.age = age;
}
public Student() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
}