java - RxJava : Return List Containing Past And Current Result

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

我想链接一个连续的数据流并创建一个包含过去结果的结果列表。我可以用下面的代码来做。有没有办法在 rx 链之外没有变量?谢谢!

- [0]
- [0, 1]
- [0, 1, 2]
- [0, 1, 2, 3]
- [0, 1, 2, 3, 4]
- [0, 1, 2, 3, 4, 5]
final List<Long> list = new ArrayList<>();

Observable
        .interval(1, TimeUnit.SECONDS)
        .subscribe(new Action1<Long>() {
            @Override
            public void call(Long number) {
                list.add(number);
                System.out.println("- " + list);
            }
        });

Thread.sleep(100000000L);

↓↓↓↓↓↓↓↓↓↓

Observable
        .interval(1, TimeUnit.SECONDS)
        .addToPastResultList()      // <--- something like this?
        .subscribe(new Action1<List<Long>>() {
            @Override
            public void call(List<Long> list) {
                System.out.println("- " + list);
            }
        });

Thread.sleep(100000000L);

最佳答案

您正在寻找扫描运算符

Observable.interval(1, TimeUnit.SECONDS)
        .scan(new ArrayList<>(), (list, integer) -> {
            list.add(integer);
            return list;
        })
        .subscribe(list -> System.out.println(list));

关于java - RxJava : Return List Containing Past And Current Result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35094232/

相关文章:

android - RxJava 和 Observable 改造 API 调用

java - 使用servlet和jsp创建多用户登录页面

java - SplitPane 布局问题

java - 使用 RxJava 跳过最后一个重复项

reactive-programming - Flow API 是否正在取代 Observer 和 Observable

rx-java - RxJava - 与 switchMap() 运算符相反?

java - 使用 Gson 使用默认值序列化 protobuf

java - Spring Boot、Thymeleaf 组合类验证

java - 使用 Spring Data R2DBC 获取嵌套对象

rx-java - 如何添加超时来检测 Observable 有一段时间没有发出