我有一个Stream<T>
,是否可以Map<T, Long>
为每个元素生成一个将计数增加一个的?我还想在将其存储在示例输入/输出之前是否可以反转T, Long
to :Long, T
Map
的示例内容Stream<String>
:
kgj
def
dgh
第一个问题的想要输出:
(kgj, 1)
(def, 2)
(dgh, 3)
最后想要的输出:
(1, kgj)
(2, def)
(3, dgh)
到目前为止,我所拥有的Stream<VertexData>
:
primitives.stream()
.flatMap(primitive -> primitive.getVertexData().stream())
.distinct()
.collect(Collectors.groupingBy(i -> i, Collectors.counting()))
.forEach((k, v) -> System.out.println("k = " + k + " / v = " + v));
这目前将 aStream<Primitive>
变成Stream<VertexData>
具有不同元素的 a ,然后变成 a计算Map<VertexData, Long>
出现次数,这不是我想要的,因为我希望它继续计数通过的每个元素。
有没有办法按我的要求做?