我有一个可观察的
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有Merge
、Concat
、Zip
、Join
,但它们看起来都可以不要这样做
最佳答案
如果两个流的用户顺序相同,那么您可以压缩
它们:
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/