您的位置:首页 > 编程语言 > Java开发

rxjava小试牛刀map和flatmap

2016-12-16 14:59 281 查看
map遍历转换:

打印某个省符合条件的的全部电台名


List<Radio> newList = new ArrayList<>();//某个省的所有电台,此处代替get
for (int i = 0; i < 3; i++)
{
newList.add(new Radio().setCitymc("城市" + i));
}

Observable.fromArray(newList.toArray()).map(new Function<Object, String>()
{
@Override
public String apply(Object Radio) throws Exception
{
return ((Radio) Radio).getCitymc();
}
}).filter(new Predicate<String>()
{
@Override
public boolean test(String s) throws Exception
{
return !s.equals("城市2");
}
}).take(2).subscribe(new Consumer<String>()
{
@Override
public void accept(String s) throws Exception
{
Log.d("resultttt", s);
}
});

flatmap:

打印每个省下全部电台名

Province[] newArr = new Province[3];
for (int i = 0; i < 3; i++) {
Province g66 = new Province();
List<Radio> g6List = new ArrayList<>();
for (int j = 0; j < 1 + i; j++) {
g6List.add(new Radio().setCitymc("城市" + (char) (97 + j)));
}
g66.setTianqis(g6List);
newArr[i] = g66;
}

Observable.fromArray(newArr).flatMap(new Function<Province, ObservableSource<Radio>>() {
@Override
public ObservableSource<Radio> apply(Province g6tianqii) throws Exception {
return Observable.fromIterable(g6tianqii.getTianqis());
}
}).filter(new Predicate<Radio>() {
@Override
public boolean test(Radio s) throws Exception {
return !s.getCitymc().equals("城市a");
}
}).take(8).subscribe(new Consumer<Radio>() {
@Override
public void accept(Radio s) throws Exception {
Log.d("resultttt", "输出" + s.getCitymc());
}
});


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: