gpt4 book ai didi

java-8 - 如何使用Java 8 Collectors groupingBy来获取带有集合Map的Map?

转载 作者:行者123 更新时间:2023-12-02 11:41:42 31 4
gpt4 key购买 nike

想象一下这些类

class Subject {
private int id;
private Type type;
private String origin;
private String name;

Subject(int id, Type type, String origin, String name) {
this.id = id;
this.type = type;
this.origin = origin;
this.name = name;
}

// Getters and Setters
}

enum Type {
TYPE1,
TYPE2
}

我有这些学科类别的列表

List<Subject> subjects = Arrays.asList(
new Subject(1, Type.TYPE1, "South", "Oscar"),
new Subject(2, Type.TYPE2, "South", "Robert"),
new Subject(3, Type.TYPE2, "North", "Dan"),
new Subject(4, Type.TYPE2, "South", "Gary"));

我想得到使用 Collectors.groupingBy() 的结果首先将 Subject 分组的 map 对象 Subject.origin然后按 Subject.type 分组

得到像这样的对象 Map<String, Map<Type, List<Subject>>>

最佳答案

groupingBy 接受下游收集器,它也可以是 groupingBy:

subjects.stream()
.collect(groupingBy(
Subject::getOrigin,
groupingBy(Subject::getType)
));

关于java-8 - 如何使用Java 8 Collectors groupingBy来获取带有集合Map的Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30824426/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com