美文网首页Java
Stream的groupBy用法

Stream的groupBy用法

作者: 愤怒的老照 | 来源:发表于2020-04-26 10:23 被阅读0次

    说明

    groupBy在一些地方很有用,比如一个A对应多个B,要从数据库中查找多个A以及对应的B属性,可以使用List<A>将所有的B查出来,然后将结果通过groupBy按照id分组

    使用

    public class GroupByTest {
    
        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        private static class Activity {
            private int id;
            private String name;
        }
        public static void main(String[] args) {
            List<Activity> activities = new ArrayList<>(Arrays.asList(
                    new Activity(1, "第一个活动"),
                    new Activity(1, "第二个活动"),
                    new Activity(2, "第三个活动")
            ));
    
            Map<Integer, List<Activity>> tempMap = activities.stream().collect(Collectors.groupingBy(it -> it.getId()));
            // {1=[GroupByTest.Activity(id=1, name=第一个活动), GroupByTest.Activity(id=1, name=第二个活动)], 2=[GroupByTest.Activity(id=2, name=第三个活动)]}
            System.out.println(tempMap);
        }
    }
    
    

    相关文章

      网友评论

        本文标题:Stream的groupBy用法

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