java - 如何在Rxjava中按键合并两个Observable?

标签 java android rx-java reactive-programming rx-android

我有一个可观察的

class User {
    public int userId;
    public String userName;
    public int age;
    public Boolean vip;
}

数据集:

userId  userName  age   vip
   1       ham     21  false
   2       lily    18  false
   3       potter  38  false

可观察b

class VIP {
    public int userId;
    public Boolean vip;
}

数据集:

userId  vip
   1   true

预期的合并结果:

userId  userName  age   vip
   1       ham     21  true
   2       lily    18  false
   3       potter  38  false

众所周知,Rxjava有MergeConcatZipJoin,但它们看起来都可以不要这样做

最佳答案

如果两个流的用户顺序相同,那么您可以压缩它们:

users.zipWith(vips, (u,v) -> new User(u.userName, u.userId, u.age, v.vip))

您可以修改 u 但最好更喜欢不变性(因此创建一个新对象)。

如果两个流的顺序不同,您可以使用 rxjava2-extras 中的 matchWith .

关于java - 如何在Rxjava中按键合并两个Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015621/

相关文章:

java - 欧拉计划 #11

android - 如何使用 xml 按钮以编程方式禁用按钮

android - 升级到3.0版本时编译报错

android - 使用 MVVM android 进行导航

java - RxJava : throw IllegalArgumentException when use 'first' operator

java - Spark将多行转换为具有多个集合的单行

java - 错误 org.apache.velocity : ResourceManager : unable to find resource 'xxx.html.vm' in any resource loader

java - 如何插入图像 .gif 文件而不是 filloval?

java - 如果可以对源代码进行逆向工程,那么在 Android(或 Java)中加密任何内容有什么意义?

java - 有条件地订阅 rxJava2 Observable