在android中的RxJava循环

时间:2017-01-03 03:36:51

标签: rx-java

我有一个UserBean,如:

THEANO_FLAGS='device=gpu1' python myscript.py

现在,我想循环这个bean列表并获取一个数据列表,如下所示: [{userId,userName,userNumber},{userId,userName,userNumber},...]。 我现在使用它的方式是:

THEANO_FLAGS: Command not found.

还有其他更好的方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

flatMap可以将第二个参数作为结果选择器(这有助于组合结果)

flatMapIterable将列表转换为Observable列表中的项目。作为flatMapflatMapIterable可以使用结果选择器

final List<UserBeanData> userBeanDatas = Observable.fromIterable(userBeen)
        // emit all numbers and create a UserBeanData for each, using the bean as source 
        .flatMapIterable(bean -> bean.userNumber, (source, number) -> new UserBeanData(number, source.userId, source.userName))
        // transform the observable as a list
        .toList()
        // get the list
        .blockingGet()

请注意,此代码的目标是RxJava 2,但应与RxJava 1一起使用(将Observable.fromIterable更改为Observable.from,将blockingGet更改为toBlocking().first()