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

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. 

主站蜘蛛池模板: 利辛县| 天柱县| 宜黄县| 吴桥县| 大方县| 邵武市| 江永县| 洱源县| 镶黄旗| 新泰市| 万宁市| 酉阳| 内丘县| 方山县| 建湖县| 惠安县| 巴东县| 边坝县| 彭州市| 湛江市| 乡城县| 高邮市| 宝坻区| 独山县| 利辛县| 武安市| 桃江县| 辛集市| 揭东县| 朝阳市| 西和县| 汉川市| 乌兰浩特市| 都安| 肇庆市| 台中市| 厦门市| 弥渡县| 友谊县| 吉首市| 三都|