大佬教程收集整理的这篇文章主要介绍了Concat VS合并运算符,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如您所引用的文档中所述- 合并可以交错输出,而concat将首先等待较早的流完成,然后再处理较晚的流。在您的情况下,对于单元素静态流,它没有任何实际的区别(但从理论上讲,合并可以按随机顺序输出单词,但根据规范仍然有效)。如果您想查看两者之间的区别,请尝试执行以下操作(之后需要添加一些睡眠以避免过早退出)
Observable.merge(
Observable.interval(1, TimeUnit.SECONDS).map(ID -> "A" + ID),
Observable.interval(1, TimeUnit.SECONDS).map(ID -> "B" + ID))
.subscribe(System.out::println);
与
Observable.concat(
Observable.interval(1, TimeUnit.SECONDS).map(ID -> "A" + ID),
Observable.interval(1, TimeUnit.SECONDS).map(ID -> "B" + ID))
.subscribe(System.out::println);
Concat永远不会开始打印B,因为流A永远不会结束。
s / stream / observable / g;)
文档提供了漂亮的图形来显示差异。您需要记住,合并不能 保证 逐项交错,这只是可能的例子之一。
我查看了RXJava的文档,发现concat和merge运算符似乎也做同样的事情。我写了几次测试来确定。
@Test
public void TESTContact() {
Observable.concat(Observable.just("Hello"),Observable.just("reactive"),Observable.just("world"))
.subscribe(System.out::println);
}
@Test
public void testMerge() {
Observable.merge(Observable.just("Hello"),Observable.just("world"))
.subscribe(System.out::println);
}
该文件说
但是我还是不太了解,运行此测试数千次,合并结果始终是相同的。由于未授予该命令,因此我期望有时会出现“反应性”,“世界”,“你好”。
代码在这里https://github.com/politrons/reactive
以上是大佬教程为你收集整理的Concat VS合并运算符全部内容,希望文章能够帮你解决Concat VS合并运算符所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。