Warren Lin
Warren Lin

Reputation: 13

RxJava multiple loop with condition

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.

Upvotes: 1

Views: 1086

Answers (1)

paul
paul

Reputation: 13471

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

Upvotes: 4

Related Questions