RxJava在过滤后接受下一个项目

时间:2017-12-02 10:50:23

标签: java rx-java observable

所以我有一个有序列表,我试图根据条件获取下一个项目(即通过列表直到找到项目,然后只获取下一个项目。)

List<Integer> items = Arrays.asList(new Integer[]{1,2,3,4,5});
Observable.from(items).filter(i -> i == 3) //.something here to get 4 after we match 3

如果不使用状态/外部变量等,这是最不痛苦的方法。

1 个答案:

答案 0 :(得分:1)

可以使用skipWhile完成解决方案并执行

  @Test
  void name() throws Exception {
    List<Integer> items = Arrays.asList(1, 2, 3, 4, 5);
    Flowable.fromIterable(items)
        .skipWhile(integer -> integer != 3)
        .take(2)
        .test()
        .assertValues(3, 4);
  }