reactive-programming - 你可以合并两个 Flux 而不阻塞,使得结果只包含唯一的元素吗?
问题描述
有没有办法合并两个 Flux 使得结果只包含唯一元素?我可以阻塞输出,然后将其转换为一个集合,但是有没有一种不依赖阻塞的方法?
来源(科特林)
val set1 = Flux.just(1, 2, 3, 4, 5)
val set2 = Flux.just(2, 4, 6, 8, 10)
val mergedSet = set1.mergeWith(set2)
println(mergedSet.collectList().block())
输出
[1, 2, 3, 4, 5, 2, 4, 6, 8, 10]
期望的输出(顺序不重要)
[1, 2, 3, 4, 5, 6, 8, 10]
解决方案
你可以使用 Flux 的merge方法,然后应用distinct()
到它上面。
Flux.merge (Flux.just(1, 2, 3, 4, 5), Flux.just(2, 4, 6, 8, 10)).distinct();
这样你就得到了一个只产生不同值的通量。
推荐阅读
- linux - tomcat 9 启动极慢,但 /dev/./urandom 不工作
- c# - foreach循环中的多线程C#
- python - Chron - 当我尝试从目录中保存和删除文件时 [Permission Denied]
- vb.net - 在 VB.Net 中对文本框中的数字进行排序
- python - 使用 PyGitHub 通过 Python 将文件推送到 GitHub,出现“Branch master not found”错误
- node.js - 我的访问被 cors 策略阻止,但在一定数量的请求之后。当我启动服务器时它工作正常。但在那之后它停止了
- windows - 如果在使用 powershell 将机器的当前分辨率与标准分辨率进行比较时条件不起作用
- r - 如何使用不同的分隔符将 .txt 文件读入 R 并在线运行?
- tsql - T-SQL:如何在空列上输出带有子字符串的空格
- java - 连接字符串时是否可以添加整数值?