Transformation, Filtering, এবং Combining Operators

Java Technologies - আরএক্সজাভা (RxJava) - Operators এর ব্যবহার
143

RxJava-তে Transformation, Filtering, এবং Combining Operators ব্যবহার করে আমরা ডেটা স্ট্রিমকে রূপান্তর করতে, ফিল্টার করতে এবং একাধিক স্ট্রিমকে একত্রিত করতে পারি। এরা functional programming স্টাইল ব্যবহার করে asynchronous ডেটা স্ট্রিম প্রক্রিয়াকরণ সহজ করে।


1. Transformation Operators

Transformation Operators ডেটা স্ট্রিমের উপাদানগুলোকে রূপান্তর করে।

(a) map

একটি উপাদানকে অন্য ফর্ম্যাটে রূপান্তরিত করতে ব্যবহৃত হয়।

Observable.just(1, 2, 3, 4)
    .map(item -> item * 2) // প্রতিটি উপাদানকে ২ দিয়ে গুণ
    .subscribe(item -> System.out.println("Transformed: " + item));

Output:

Transformed: 2
Transformed: 4
Transformed: 6
Transformed: 8

(b) flatMap

একটি উপাদানকে নতুন একটি Observable-এ রূপান্তরিত করে এবং তাদের একত্রিত করে।

Observable.just("Hello", "World")
    .flatMap(item -> Observable.just(item.toUpperCase()))
    .subscribe(item -> System.out.println("FlatMapped: " + item));

Output:

FlatMapped: HELLO
FlatMapped: WORLD

(c) scan

পূর্বের উপাদানের সাথে বর্তমান উপাদানের accumulator function প্রয়োগ করে।

Observable.just(1, 2, 3, 4)
    .scan((total, next) -> total + next)
    .subscribe(item -> System.out.println("Accumulated: " + item));

Output:

Accumulated: 1
Accumulated: 3
Accumulated: 6
Accumulated: 10

2. Filtering Operators

Filtering Operators ব্যবহার করে স্ট্রিম থেকে নির্দিষ্ট উপাদান ফিল্টার করা যায়।

(a) filter

নির্দিষ্ট শর্ত পূরণ করে এমন উপাদানগুলো রাখতে ব্যবহার হয়।

Observable.just(1, 2, 3, 4, 5)
    .filter(item -> item % 2 == 0) // জোড় সংখ্যা নির্বাচন
    .subscribe(item -> System.out.println("Filtered: " + item));

Output:

Filtered: 2
Filtered: 4

(b) take

প্রথম N উপাদান নিতে ব্যবহৃত হয়।

Observable.just(1, 2, 3, 4, 5)
    .take(3)
    .subscribe(item -> System.out.println("Taken: " + item));

Output:

Taken: 1
Taken: 2
Taken: 3

(c) distinct

একই ডেটা একাধিকবার আসা থেকে প্রতিরোধ করে।

Observable.just(1, 2, 2, 3, 4, 4, 5)
    .distinct()
    .subscribe(item -> System.out.println("Distinct: " + item));

Output:

Distinct: 1
Distinct: 2
Distinct: 3
Distinct: 4
Distinct: 5

3. Combining Operators

Combining Operators বিভিন্ন Observable-কে একত্রিত করতে ব্যবহৃত হয়।

(a) merge

দুটি Observable একত্রিত করে এবং parallel ডেটা emission পরিচালনা করে।

Observable<String> observable1 = Observable.just("A", "B");
Observable<String> observable2 = Observable.just("C", "D");

Observable.merge(observable1, observable2)
    .subscribe(item -> System.out.println("Merged: " + item));

Output:

Merged: A
Merged: B
Merged: C
Merged: D

(b) zip

দুটি Observable-এর emission একত্রিত করে একটি নতুন emission তৈরি করে।

Observable<String> observable1 = Observable.just("X", "Y");
Observable<Integer> observable2 = Observable.just(1, 2);

Observable.zip(observable1, observable2, (item1, item2) -> item1 + item2)
    .subscribe(item -> System.out.println("Zipped: " + item));

Output:

Zipped: X1
Zipped: Y2

(c) combineLatest

প্রতিটি Observable থেকে শেষ emitted value গ্রহণ করে তাদের একত্রিত করে।

Observable<String> observable1 = Observable.just("A", "B");
Observable<Integer> observable2 = Observable.just(1, 2, 3);

Observable.combineLatest(
    observable1,
    observable2,
    (item1, item2) -> item1 + item2
).subscribe(item -> System.out.println("Combined: " + item));

Output:

Combined: B1
Combined: B2
Combined: B3

উপসংহার

  • Transformation Operators: ডেটা পরিবর্তন করতে ব্যবহৃত হয়।
  • Filtering Operators: স্ট্রিম থেকে নির্দিষ্ট ডেটা বেছে নিতে সাহায্য করে।
  • Combining Operators: একাধিক Observable থেকে ডেটা একত্রিত করতে ব্যবহৃত হয়।

এই Operators ব্যবহার করে asynchronous এবং event-driven programming আরও শক্তিশালী এবং কার্যকরী করা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...