首页 > 编程语言 > 详细

java8 ->分组案例

时间:2020-09-09 11:08:16      阅读:56      评论:0      收藏:0      [点我收藏+]

导入包:

import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;

java代码:

/**
     * 分组
     * @Author: Mr.li
     * @Date: 2020/9/8
     */
    @Test
    public void demo5() {
        List<User> list = new ArrayList<User>() {
            {
                add(new User("妮妮", "1999/01/01", 12,"男"));
                add(new User("哪儿能", "1999/01/01", 55,"女"));
                add(new User("爱思", "1999/01/01", 66,"男"));
                add(new User("依依", "1999/01/01", 77,"女"));
            }
        };
        /*将所有人分为老年人、中年人、青年人*/

        /*Map<String, List<User>> result = list.stream()
                .collect(groupingBy((user) -> {
                    if (user.getAge() > 60)
                        return "老年人";
                    else if (user.getAge() > 40)
                        return "中年人";
                    else
                        return "青年人";
                }));
        System.out.println(result);*/

        /*将所有人分为老年人、中年人、青年人,并且将每个小组再分成:男女两组。*/

        /*Map<String, Map<String, List<User>>> result1 = list.stream()
                .collect(groupingBy((user) -> {
                            if (user.getAge() > 60)
                                return "老年人";
                            else if (user.getAge() > 40)
                                return "中年人";
                            else
                                return "青年人";
                        },
                        groupingBy(User::getSex)));
        System.out.println(result1);*/
        Map<String, Long> result2 = list.stream()
                .collect(Collectors.groupingBy((person) -> {
                            if (person.getAge() > 60)
                                return "老年人";
                            else if (person.getAge() > 40)
                                return "中年人";
                            else
                                return "青年人";
                        },
                        counting()));
        System.out.println(result2);
    }

result:

技术分享图片

 

java8 ->分组案例

原文:https://www.cnblogs.com/name-lizonglin/p/13633091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!