RxJava multiple loop with condition

别等时光非礼了梦想. 提交于 2020-01-14 04:06:21

问题


I am learning RxJava for a few week, i have some java code like below

Code:

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

How can i translate it to RxJava code?

I trying to use flatMapIterable with flatMap but still can not reached it.


回答1:


There you go

@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();
}

You can see more examples to lear Rx here https://github.com/politrons/reactive



来源:https://stackoverflow.com/questions/44403661/rxjava-multiple-loop-with-condition

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!