按类别划分java流 [英] Partition java streams in categories
本文介绍了按类别划分java流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个流< A>
,其中
class A {
String category();
// ...
}
我想得到一个 map< String,list< A>>
,其中原始流根据category()的值划分为子列表。使用for循环实现它是非常简单的,但是是否有可能获得利用java流的更优雅的解决方案?
I would like to get a map<String, list<A>>
, where the original stream is partitioned into sublists based on the value of category(). It is pretty trivial to have it implemented using a for loop, but is it possible to get a more elegant solution harnessing java streams?
示例:
鉴于 {[a,xyz],[a,zyx],[b,abc]}
,我想得到一张地图:
Given {[a, xyz], [a, zyx], [b, abc]}
, I would like to get a map:
a -> {[a, xyz], [a, zyx]}
b -> {[b, abc]}
推荐答案
使用 groupingBy collector 。
stream.collect(Collectors.groupingBy(A :: category));
这篇关于按类别划分java流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文