美文网首页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