gpt4 book ai didi

rx-java - Rx 等价于 COUNT 和 GROUP BY?

转载 作者:行者123 更新时间:2023-12-04 22:10:29 25 4
gpt4 key购买 nike

我有一个重复元素列表,比如:

Observable<String> source = Observable.just("A", "B", "A", "C", "C", "A");

我想按它们的值以及它们出现的次数对它们进行分组,因此输出将是成对的:
{"A", 3}, {"B", 1}, {"C", 2}

基本上相当于 SQL 语句,如 SELECT x, COUNT(1) GROUP BY x;
我只能对他们调用 groupBy :
source.groupBy(x -> x, x -> 1)

但这会将流转换为 GroupedObservables,我找不到如何继续使用它们的好示例。我试过 reduce() ,但这里不好,因为在 groupBy() 之后它想要减少 GroupedObservables,而不是每个组内的元素。

GroupedObservables 可以做到这一点吗?有没有其他方法可以达到预期的结果?

最佳答案

以下代码:

source.groupBy(val -> val)
.flatMap(
gr -> gr.count()
.map(count -> new Pair<>(gr.getKey(), count)
)
).subscribe(System.out::println);

会打印出来:
A=3
B=1
C=2

关于rx-java - Rx 等价于 COUNT 和 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501772/

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