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

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. 

主站蜘蛛池模板: 万载县| 台北县| 同仁县| 南和县| 遵化市| 恭城| 江北区| 阿拉善右旗| 天柱县| 巴南区| 绥芬河市| 曲阳县| 荔浦县| 南京市| 鄂尔多斯市| 大庆市| 余江县| 屏东县| 桐城市| 岐山县| 阿荣旗| 郎溪县| 铁岭市| 双辽市| 信宜市| 香格里拉县| 长乐市| 古丈县| 乌什县| 通化县| 忻州市| 闽清县| 杭州市| 丽江市| 河池市| 新竹县| 嘉义市| 吉隆县| 红河县| 遂川县| 双城市|