stream 对象分组
2022-12-27 本文已影响0人
archerdu
代码
package com.jianshu;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* stream 对象分组
*
* @author archer
* @since 2022/12/28 8:51
*/
public class StreamGroup {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
Person person1 = new Person(1, "张三");
Person person2 = new Person(0, "李四");
Person person3 = new Person(1, "王五");
Person person4 = new Person(1, "马六");
personList.add(person1);
personList.add(person2);
personList.add(person3);
personList.add(person4);
Map<Integer, List<Person>> personMap = personList.stream().collect(Collectors.<Person, Integer>groupingBy(Person::getSex));
personMap.forEach((index, persons) -> {
System.out.println("性别 : " + index);
persons.forEach(item -> System.out.println("\t姓名 : " + item.getName()));
});
}
@Data
private static class Person {
/**
* 初始化对象
*
* @param sex 性别
* @param name 姓名
*/
public Person(Integer sex, String name) {
this.sex = sex;
this.name = name;
}
/**
* 性别
*/
private Integer sex;
/**
* 姓名
*/
private String name;
}
}
结果输出
性别 : 0
姓名 : 李四
性别 : 1
姓名 : 张三
姓名 : 王五
姓名 : 马六