官术网_书友最值得收藏!

Observable for iterators

Observable provides support to emit the data from any iterable sources, for example, lists, maps, sets, and so on. It will call onNext() on each item of an iterable type, and once the iterator is over, it will call onComplete() automatically. Iterable in Java is commonly used in collection frameworks, so Observable with iterable can be used while fetching data from collection classes.

Let's see how to use it as follows:

public class RxJavaIterableDemo {
public static void main(String[] args) {
List<EmployeeRating> employeeList = new ArrayList<EmployeeRating>();
EmployeeRating employeeRating1 = new EmployeeRating();
employeeRating1.setName("Lilly");
employeeRating1.setRating(6);
employeeList.add(employeeRating1);

employeeRating1 = new EmployeeRating();
employeeRating1.setName("Peter");
employeeRating1.setRating(5);
employeeList.add(employeeRating1);

employeeRating1 = new EmployeeRating();
employeeRating1.setName("Bhakti");
employeeRating1.setRating(9);
employeeList.add(employeeRating1);

employeeRating1 = new EmployeeRating();
employeeRating1.setName("Harmi");
employeeRating1.setRating(9);
employeeList.add(employeeRating1);

Observable<EmployeeRating> employeeRatingSource =
Observable.fromIterable(employeeList);

employeeRatingSource.filter(employeeRating ->
employeeRating.getRating() >=7).subscribe(empRating ->
System.out.println("Star Employee: " + empRating.getName()
+ " Rating : "+empRating.getRating()));
}
}

We are populating the list of EmployeeRating and creating Observable with thefromIterable() method by passing this list. The class EmployeeRating is a simple POJO containing the name and rating attributes as follows:

class EmployeeRating{
private String name;
private int rating;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRating() {
return rating;
}
public void setRating(int rating) {
this.rating = rating;
}
}

RxJava conforms to Reactive Streams specification by providing an implementation of interfaces. Let's recall that the onNext(), onError(), onSubscribe(), and onComplete() methods are part of the Observer interface. RxJava provides an implementation of these interfaces to handle respective events. 

主站蜘蛛池模板: 梨树县| 玉环县| 松潘县| 班戈县| 台州市| 屏东市| 南丹县| 宁陕县| 若尔盖县| 淅川县| 东乡族自治县| 太原市| 南雄市| 图木舒克市| 喜德县| 元氏县| 巢湖市| 皋兰县| 普兰县| 永宁县| 安新县| 遂昌县| 康马县| 灵武市| 正安县| 灵山县| 张家川| 卢龙县| 垣曲县| 信宜市| 锦屏县| 桐柏县| 新绛县| 班戈县| 上虞市| 密山市| 五寨县| 黄山市| 泗阳县| 武邑县| 湄潭县|