Rx java 处理列表时选择使用Observable.just或Single

Rx java 处理列表时选择使用Observable.just或Single,rx-java,Rx Java,在我的应用程序中,我一次检索10个项目的列表,直到没有更多的项目可用。我需要按顺序处理每个项目。如果我理解正确,这可以使用RxJava中的Observable.just或Single来完成。我不清楚选择哪一个,或者它是否会产生影响 或者我完全错了,这两个都不合适吗?如果您想对列表中的每一项执行操作,那么您可能会想要一个可观察的。正如它的名字所暗示的,一次发射就是一次发射 考虑以下几点: List<String> items = new ArrayList<>(10); /

在我的应用程序中,我一次检索10个项目的列表,直到没有更多的项目可用。我需要按顺序处理每个项目。如果我理解正确,这可以使用RxJava中的Observable.just或Single来完成。我不清楚选择哪一个,或者它是否会产生影响


或者我完全错了,这两个都不合适吗?

如果您想对列表中的每一项执行操作,那么您可能会想要一个可观察的。正如它的名字所暗示的,一次发射就是一次发射

考虑以下几点:

List<String> items = new ArrayList<>(10);
// lets say this array list is already populated

Observable.fromIterable(items)
        // the map operator handles each emission individually
        .map(String::length)
        .subscribe(System.out::println);
在这里你可以看到,我们有一个项目的单一发射,但为了处理列表中的每个字符串,我们需要将其转换为该列表上的一个可观察的平面映射,因此我们分别获得列表中的每个元素。本质上,这只是直接使用可观测数据的一个更粗俗的版本

现在,如果我们将其扩展到以10人一组的方式检索批量数据,同样的原则也适用。这取决于您如何检索这些批处理,以便确切地说它将如何连接到可观察的对象的创建中

Single.just(items)
        .toObservable()
        .flatMapIterable(strings -> strings)
        .map(String::length)
        .subscribe(System.out::println);