2017-06-07 30 views
1

我學習RxJava幾個星期RxJava多回路,我有像下面與條件

代碼的Java代碼:

String[] strings1 = new String[]{"a", "b", "c", "d", "e"}; 
Integer[] integers = {1, 2, 3, 4, 5}; 
String[] strings2 = new String[]{"f", "g", "h", "i"}; 

for (String str : strings1) { 
    for (Integer integer : integers) { 
     System.out.println(str + ":" + integer); 
     if(integer == 4){ 
      for (String str2 : strings2) { 
       System.out.println(str2 + ":" + integer); 
      } 
     } 
    } 
} 

我怎樣才能將其翻譯成RxJava代碼?

我試圖使用flatMapIterableflatMap但仍然無法達到它。

回答

1

你去那裏

@Test 
public void thirdDeepLevel() { 
    Observable.from(Arrays.asList("a", "b", "c", "d", "e")) 
      .flatMap(letter -> Observable.from(Arrays.asList(1, 2, 3, 4, 5)) 
        .map(number -> { 
         System.out.println(letter + ":" + number); 
         return number; 
        }) 
        .filter(number -> number == 4) 
        .flatMap(number -> Observable.from(Arrays.asList("f", "g", "h", "i")) 
          .map(leter2 -> { 
           System.out.println(letter + ":" + number); 
           return leter2; 
          }))) 
      .subscribe(); 
} 

你可以看到更多的例子來這裏李爾的Rx https://github.com/politrons/reactive

+0

感謝您的重播。 –

+0

樂意提供幫助。歡迎來到反應式世界! – paul

+0

如果要解決您的問題,請記住將問題標記爲完整 – paul