map遍历转换:
打印某个省符合条件的的全部电台名
flatmap: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); } });
打印每个省下全部电台名
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()); } });