【发布时间】:2015-10-29 21:40:23
【问题描述】:
我正在尝试对具有 Java 流的对象的两个属性执行 groupingBy。正如一些答案所记录的那样,这很容易:
products.stream().collect(
Collectors.groupingBy(Product::getUpc,
Collectors.groupingBy(Product::getChannelIdentifier)));
比如上面的sn-p会产生一个Map of Maps的形式
Map<String, Map<String, List<Product>>>
其中映射具有 UPC 代码键,其值是具有引用产品列表的通道标识符键的映射。
这很酷,但是如果我不需要将嵌套值作为映射呢?也就是说,我想通过ChannelIdentifier来组织嵌套集合,但是我只关心map的.values(),而不关心map本身。有没有办法获得与以下匹配的结果?
Map<String, List<List<Product>>
列表或集合...没关系。谢谢!
【问题讨论】:
标签: java-8 java-stream