gpt4 book ai didi

java - Java 8 Stream API 中连续计算相同项目的数量

转载 作者:行者123 更新时间:2023-12-02 08:31:09 26 4
gpt4 key购买 nike

我有一个 bean 和一个流

public class TokenBag {
private String token;
private int count;
// Standard constructor and getters here
}
Stream<String> src = Stream.of("a", "a", "a", "b", "b", "a", "a");

并且想要对返回 TokenBag 对象的另一个流的流应用一些中间操作。在此示例中,必须有两个:("a", 3)、("b", 3) 和 ("a", 2)。

请把它看作一个非常简单的例子。实际上,逻辑比仅仅计算一行中的相同值要复杂得多。实际上,我尝试设计一个简单的解析器,它接受 token 流并返回对象流。

另请注意,它必须保持流(没有中间累积),并且在本例中,它必须真正计算一行中的相同值(它与分组不同)。

非常感谢您对此任务解决方案的一般方法提出建议。

最佳答案

Map<String, Long> result = src.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result);

这将给出所需的输出

a=4, b=3

然后您可以继续迭代映射并创建 TokenBag 对象。

关于java - Java 8 Stream API 中连续计算相同项目的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com