RxJava-তে অপারেটর হলো ডেটা স্ট্রিম ম্যানিপুলেট করার টুল। এগুলো ডেটা প্রসেসিং সহজ করে এবং রিয়েক্টিভ প্রোগ্রামিংয়ে অনেক ক্ষমতা যোগ করে। নিচে কিছু গুরুত্বপূর্ণ অপারেটরের ব্যাখ্যা এবং উদাহরণ দেয়া হলো।
1. map অপারেটর
- ব্যবহার: একটি ডেটাকে অন্য ফর্মে রূপান্তর করতে।
- উদাহরণ: একটি সংখ্যা ডাবল করা।
import io.reactivex.rxjava3.core.Observable;
public class MapExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);
numbers.map(number -> number * 2)
.subscribe(result -> System.out.println("Mapped value: " + result));
}
}
আউটপুট:
Mapped value: 2
Mapped value: 4
Mapped value: 6
Mapped value: 8
Mapped value: 10
2. flatMap অপারেটর
- ব্যবহার: এক Observable কে আরও একাধিক Observable-এ রূপান্তর করতে।
- উদাহরণ: একটি ডেটা লিস্ট তৈরি করা এবং তা ফ্ল্যাট করা।
import io.reactivex.rxjava3.core.Observable;
public class FlatMapExample {
public static void main(String[] args) {
Observable<String> users = Observable.just("User1", "User2");
users.flatMap(user -> Observable.just(user + " - Data1", user + " - Data2"))
.subscribe(data -> System.out.println("FlatMapped value: " + data));
}
}
আউটপুট:
FlatMapped value: User1 - Data1
FlatMapped value: User1 - Data2
FlatMapped value: User2 - Data1
FlatMapped value: User2 - Data2
3. filter অপারেটর
- ব্যবহার: নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করতে।
- উদাহরণ: শুধু জোড় সংখ্যাগুলো বের করা।
import io.reactivex.rxjava3.core.Observable;
public class FilterExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5, 6);
numbers.filter(number -> number % 2 == 0)
.subscribe(result -> System.out.println("Filtered value: " + result));
}
}
আউটপুট:
Filtered value: 2
Filtered value: 4
Filtered value: 6
4. reduce অপারেটর
- ব্যবহার: ডেটা স্ট্রিমকে একক ফলাফলে কমিয়ে আনতে।
- উদাহরণ: সব সংখ্যার যোগফল বের করা।
import io.reactivex.rxjava3.core.Observable;
public class ReduceExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);
numbers.reduce((sum, number) -> sum + number)
.subscribe(result -> System.out.println("Reduced value: " + result));
}
}
আউটপুট:
Reduced value: 15
সব অপারেটরের ব্যবহার সংক্ষেপে
| অপারেটর | ব্যবহার | কাজ |
|---|---|---|
map | ডেটা রূপান্তর | ডেটার প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ। |
flatMap | ডেটা ফ্ল্যাট করা | এক Observable থেকে একাধিক Observable তৈরি। |
filter | শর্ত অনুযায়ী ফিল্টার | নির্দিষ্ট শর্তে মিল রেখে ডেটা নির্বাচন। |
reduce | ডেটা কম্পাইল করা | সমস্ত ডেটা একক ফলাফলে রূপান্তর। |
সংক্ষিপ্ত টিপস:
mapএবংflatMapখুবই শক্তিশালী, তবে ভুল ব্যবহারে কমপ্লেক্সিটি বাড়তে পারে।filterব্যবহার করে শুধুমাত্র প্রয়োজনীয় ডেটা স্ট্রিমে রাখা সহজ।reduceবড় ডেটা প্রসেসিংয়ের জন্য ভালো তবে এটি শুধুমাত্র Finite Observable-এর জন্য কাজ করে।
আপনার যদি এই বিষয়ে আরও কিছু জানার প্রয়োজন হয়, বলুন! 😊
Content added By
Read more