使用Observable Rx java准备地图

使用Observable Rx java准备地图,java,rx-java,couchbase,couchbase-java-api,Java,Rx Java,Couchbase,Couchbase Java Api,这里是我的示例代码,它从couchbase服务器返回JsonDocument列表 Cluster cluster = CouchbaseCluster.create(); Bucket bucket = cluster.openBucket(); List<JsonDocument> foundDocs = Observable .just("key1", "key2", "key3", "key4", "key5") .flatMap(new Func1<S

这里是我的示例代码,它从couchbase服务器返回
JsonDocument
列表

Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket();

List<JsonDocument> foundDocs = Observable
    .just("key1", "key2", "key3", "key4", "key5")
    .flatMap(new Func1<String, Observable<JsonDocument>>() {
        @Override
        public Observable<JsonDocument> call(String id) {
            return bucket.async().get(id);
        }
    })
    .toList()
    .toBlocking()
    .single();
Cluster Cluster=CouchbaseCluster.create();
Bucket=cluster.openBucket();
列表foundDocs=可观察
.just(“键1”、“键2”、“键3”、“键4”、“键5”)
.flatMap(新函数1(){
@凌驾
公共可观察调用(字符串id){
返回bucket.async().get(id);
}
})
托利斯先生()
.toBlocking()
.single();
我想返回
Map
而不是
List
。我的返回类型是
Map

我尝试了
toMap
方法,但对我无效。

您在评论中正确地提到
toMap
需要一个
函数作为其参数。此
函数将用于“提取”(或可能是“构造”)键,在该键下,每个值都将输入地图


因此,在您的情况下,您需要一个
函数
,该函数以
JsonDocument
作为输入,并以某种方式返回一个
字符串
,您稍后将使用该字符串在
映射中查找
JsonDocument
String
将是什么,只有您才能回答-可能在
JsonDocument
中有一些ID?

请提供您尝试的代码和得到的结果。方法
toMap
所需函数作为参数,我不知道如何编写。将key和flatMap结果结合起来是您的问题吗?然后检查这个-