ale*_*zm1 7 java-8 java-stream collectors
想象一下这些课程
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
}
Run Code Online (Sandbox Code Playgroud)
我有一个这些主题类的列表
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"));
Run Code Online (Sandbox Code Playgroud)
我希望得到的结果是首先使用Collectors.groupingBy()
Map分组Subject
对象Subject.origin
然后进行分组Subject.type
得到一个像这样的对象 Map<String, Map<Type, List<Subject>>>
groupingBy
接受下游收集器,也可以是groupingBy
:
subjects.stream()
.collect(groupingBy(
Subject::getOrigin,
groupingBy(Subject::getType)
));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12819 次 |
最近记录: |