2017-12-02 9 views
0

그래서 정렬 된 목록이 있고 조건을 기반으로 다음 항목을 얻으려고합니다. 즉 항목을 찾을 때까지 목록을 살펴본 다음 다음 항목 만 가져옵니다.RxJava가 필터링 된 후 다음 항목 가져 오기

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 

뭐죠 등 상태/외부 변수를 사용하지 않고이 작업을 수행하는 가장 고통스러운 방법

+0

을 할 수있다 현재의 상태), 나는 그것이 상태없이 어떻게 관리 될 수 있는지 생각할 수 없다. 귀하의 상태는 주에 근거합니다. – eis

+0

이것은 유사한 문제로, 문제를 다른 방향으로 생각하고있는 솔루션입니다. https://stackoverflow.com/questions/34491155/filter-sublist-using-rxjava – eis

답변

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); 
    } 
+0

감사합니다. firstOrDefault를 사용하여 변형되었습니다. – breakline