我有一个要对其进行分组的 pojo 列表。就像是:
public class Pojo {
private final Category category;
private final BigDecimal someValue;
}
public class Category {
private final String majorCategory;
private final String minorCategory;
}
我想要一个Map<String, Map<String, List<Pojo>>>
键在哪里,majorCategory
值是一个Map
带有键的值,minorCategory
值是一个对象的说。List
Pojo
minorCategory
我打算使用 Java 8 lambdas 来实现这一点。我可以通过以下方式完成第一级分组:
Map<String, Pojo> result = list
.stream()
.collect(groupingBy(p -> p.getCategory().getMajorCategory()));
我现在如何才能再次分组minorCategory
并获得Map<String, Map<String, List<Pojo>>>
我想要的?
更新
提供的第一个答案对于最初提供的示例是正确的,但是我已经更新了这个问题。鲁本在接受的答案中的评论提供了最后一块拼图。