美文网首页
stream 对象分组

stream 对象分组

作者: archerdu | 来源:发表于2022-12-27 09:13 被阅读0次

    代码

    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
        姓名 : 张三
        姓名 : 王五
        姓名 : 马六
    

    相关文章

      网友评论

          本文标题:stream 对象分组

          本文链接:https://www.haomeiwen.com/subject/bkyoqdtx.html