当前位置: 首页 > 知识库问答 >
问题:

RxJava将对象与列表合并/合并

羊慈
2023-03-14

我有两个可观测值,一个返回1个元素,另一个返回多个元素。我的目标是在不阻塞的情况下将它们合并在一起,以构建如下对象:

class Combined {
    Server server;
    List<Client> client;
}

Observable<Server> server = getServerById("1"); //returns an observable of 1 server
Observable<Client> clients = getClientsByServerId("1"); //returns an observable of 0 to n clients

Observable<Combined> combined = //...

我试过压缩、合并和合并,但似乎都不是解决方案。

共有1个答案

东门焕
2023-03-14

zip应该工作,前提是getClientsByServerId是有限的:

Single<Combined> = Single.zip(
    server.singleOrError(),
    clients.toList(),
    (svr, list) -> new Combined(svr, list)
)
 类似资料:
  • 问题内容: 问题 我有两个Apis。Api 1为我提供了一个项目列表,Api 2为我提供了我从Api 1获得的每个项目的更详细信息。到目前为止,我解决它的方式导致性能下降。 问题 借助Retrofit和RxJava,可以快速有效地解决此问题。 我的方法 当下,我的解决方案如下所示: 步骤1:从Api 1 执行改造。 第2步:我遍历此项目,并向Api 2请求每个项目。 步骤3:对每个项目依次执行改造

  • 我有List sample1=lists.newarrayList(BIGINTEGER1,BIGINTEGER2,BIGINTEGER3); 我必须创建一个新的列表sample2,其中还有一个值“bigInteger4”,以及sample1列表: 我怎么能那样做?

  • 我有一个Java类,它有20个属性及其相应的getter和setter。还有两个对象列表:和。 使用Java 8: 但是我必须在哪个地方指定属性呢?是否应该重写和方法?

  • 组合两个或两个以上的对象,创建一个新对象。 使用 Array.reduce() 与 Object.keys(obj) 结合来遍历所有对象和键。 使用 hasOwnProperty() 和 Array.concat() 为存在与多个对象中的键添加值。 const merge = (...objs) => [...objs].reduce( (acc, obj) => Obje

  • 问题内容: 我有一个带有20个属性的Java类及其相应的getter和setters。我也有两个对象列表:和。 现在,我想合并两个列表,并避免基于和的重复对象。 使用Java 8: 但是我必须在哪里指定属性?我应该重写和方法吗? 问题答案: 如果要实现and ,则 在 类 内部 进行操作。在该类中添加类似的方法 如果您这样做了,在上调用将自动执行正确的操作。 如果您不想(或无法)更改类,则没有平等

  • 问题内容: 我完全相信我的问题很简单,但我无法使用流进行处理(如果有一种方法也可以不使用流进行处理,那么它也会有所帮助)假设我们有此用户列表 并假设我们的List 中包含以下数据 在此预期的结果它因为名字,姓氏和类型列表中出现了两次只是合并是常见的结果,而不会错过任何领域的 预期成果 问题答案: 您可以创建一个包含三个字段的键类,例如 分组 这些可以用来对您的用户进行分组 这些列表中的每一个都可以