
Observables
- RxJava - How Observable works
- RxJava - Creating Observables
- RxJava - Using Flowable
- RxJava - Using Observable
- RxJava - Single Observable
- RxJava - Maybe Observable
- RxJava - Completable Observable
- RxJava - Using CompositeDisposable
Operators
- RxJava - Creating Operators
- RxJava - Transforming Operators
- RxJava - Filtering Operators
- RxJava - Combining Operators
- RxJava - Utility Operators
- RxJava - Conditional Operators
- RxJava - Mathematical Operators
- RxJava - Connectable Operators
Subjects
- RxJava - Subjects
- RxJava - PublishSubject
- RxJava - BehaviorSubject
- RxJava - ReplaySubject
- RxJava - AsyncSubject
- RxJava - UnicastSubject
Schedulers
- RxJava - Schedulers
- RxJava - Trampoline Scheduler
- RxJava - NewThread Scheduler
- RxJava - Computation Scheduler
- RxJava - IO Scheduler
- RxJava - From Scheduler
Miscellaneous
RxJava Useful Resources
RxJava - CompositeDisposable Observable
The CompositeDisposable lass represents a container which can hold multiple disposable and offers O(1) complexity of adding and removing disposables.
Class Declaration
Following is the declaration for io.reactivex.rxjava3.disposables.CompositeDisposable class −
public final class CompositeDisposable extends Object implements Disposable, DisposableContainer
Example - Creating a CompositeDisposable Observable Class to get Data
ObservableTester.java
package com.tutorialspoint; import io.reactivex.rxjava3.core.Single; import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ObservableTester { public static void main(String[] args) throws InterruptedException { CompositeDisposable compositeDisposable = new CompositeDisposable( Single.just("Hello world").subscribe(System.out::println) ); } }
Output
Compile and Run the code to verify the following output −
Hello World
Example - Usage of CompositeDisposable Observable Class to get Data using multiple disposable
ObservableTester.java
package com.tutorialspoint; import java.util.concurrent.TimeUnit; import io.reactivex.rxjava3.core.Maybe; import io.reactivex.rxjava3.core.Single; import io.reactivex.rxjava3.disposables.CompositeDisposable; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.observers.DisposableMaybeObserver; import io.reactivex.rxjava3.observers.DisposableSingleObserver; import io.reactivex.rxjava3.schedulers.Schedulers; public class ObservableTester { public static void main(String[] args) throws InterruptedException { CompositeDisposable compositeDisposable = new CompositeDisposable(); //Create an Single observer Disposable disposableSingle = Single.just("Hello World") .delay(2, TimeUnit.SECONDS, Schedulers.io()) .subscribeWith( new DisposableSingleObserver<String>() { @Override public void onError(Throwable e) { e.printStackTrace(); } @Override public void onSuccess(String value) { System.out.println(value); } }); //Create an observer Disposable disposableMayBe = Maybe.just("Hi") .delay(2, TimeUnit.SECONDS, Schedulers.io()) .subscribeWith(new DisposableMaybeObserver<String>() { @Override public void onError(Throwable e) { e.printStackTrace(); } @Override public void onSuccess(String value) { System.out.println(value); } @Override public void onComplete() { System.out.println("Done!"); } }); Thread.sleep(3000); compositeDisposable.add(disposableSingle); compositeDisposable.add(disposableMayBe); //start observing compositeDisposable.dispose(); } }
Output
Compile and Run the code to verify the following output −
Hello World Hi
Advertisements