RxJava - ตัวดำเนินการกรอง
ต่อไปนี้เป็นตัวดำเนินการที่ใช้ในการเลือกปล่อยไอเท็มจาก Observable
ซีเนียร์ | ตัวดำเนินการและคำอธิบาย |
---|---|
1 | Debounce ปล่อยไอเท็มเฉพาะเมื่อหมดเวลาโดยไม่ปล่อยไอเท็มอื่น |
2 | Distinct ปล่อยเฉพาะรายการที่ไม่ซ้ำกัน |
3 | ElementAt ปล่อยเฉพาะรายการที่ดัชนี n ที่ปล่อยออกมาโดย Observable |
4 | Filter ปล่อยเฉพาะรายการที่ส่งผ่านฟังก์ชันเพรดิเคตที่กำหนด |
5 | First ส่งรายการแรกหรือรายการแรกที่ผ่านเกณฑ์ที่กำหนด |
6 | IgnoreElements ห้ามปล่อยสิ่งของใด ๆ ออกจาก Observable แต่ทำเครื่องหมายว่าเสร็จสิ้น |
7 | Last ปล่อยองค์ประกอบสุดท้ายจาก Observable |
8 | Sample ส่งรายการล่าสุดพร้อมช่วงเวลาที่กำหนด |
9 | Skip ข้าม n รายการแรกจาก Observable |
10 | SkipLast ข้าม n รายการสุดท้ายจาก Observable |
11 | Take รับ n รายการแรกจาก Observable |
12 | TakeLast รับ n รายการสุดท้ายจาก Observable |
ตัวอย่างตัวดำเนินการกรอง
สร้างโปรแกรม Java ต่อไปนี้โดยใช้ตัวแก้ไขที่คุณเลือกใน C: \> RxJava
ObservableTester.java
import io.reactivex.Observable;
//Using take operator to filter an Observable
public class ObservableTester {
public static void main(String[] args) {
String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
final StringBuilder result = new StringBuilder();
Observable<String> observable = Observable.fromArray(letters);
observable
.take(2)
.subscribe( letter -> result.append(letter));
System.out.println(result);
}
}
ตรวจสอบผลลัพธ์
รวบรวมคลาสโดยใช้ javac คอมไพเลอร์ดังนี้ -
C:\RxJava>javac ObservableTester.java
ตอนนี้เรียกใช้ ObservableTester ดังนี้ -
C:\RxJava>java ObservableTester
ควรให้ผลลัพธ์ดังต่อไปนี้ -
ab