2017-06-07 91 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