rx

Class Observable<T>

  • Type Parameters:
    T - the type of the items emitted by the Observable
    Direct Known Subclasses:
    ConnectableObservable, GroupedObservable, ScalarSynchronousObservable, Subject


    public class Observable<T>
    extends Object
    The Observable class that implements the Reactive Pattern.

    This class provides methods for subscribing to the Observable as well as delegate methods to the various Observers.

    The documentation for this class makes use of marble diagrams. The following legend explains these diagrams:

    For more information see the RxJava wiki

    • Constructor Summary

      Constructors

      Modifier Constructor and Description
      protected Observable(Observable.OnSubscribe<T> f)
      Creates an Observable with a Function to execute when it is subscribed to.
    • Method Summary

      Modifier and Type Method and Description
      Observable<Boolean> all(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits a Boolean that indicates whether all of the items emitted by the source Observable satisfy a condition.
      static <T> Observable<T> amb(Iterable<? extends Observable<? extends T>> sources)
      Mirrors the one Observable in an Iterable of several Observables that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2)
      Given two Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3)
      Given three Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4)
      Given four Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5)
      Given five Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6)
      Given six Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7)
      Given seven Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8)
      Given eight Observables, mirrors the one that first emits an item.
      static <T> Observable<T> amb(Observable<? extends T> o1, Observable<? extends T> o2, Observable<? extends T> o3, Observable<? extends T> o4, Observable<? extends T> o5, Observable<? extends T> o6, Observable<? extends T> o7, Observable<? extends T> o8, Observable<? extends T> o9)
      Given nine Observables, mirrors the one that first emits an item.
      Observable<T> ambWith(Observable<? extends T> t1)
      Mirrors the first Observable (current or provided) that emits an item.
      Observable<T> asObservable()
      Portrays a object of an Observable subclass as a simple Observable object.
      <TClosing> Observable<List<T>> buffer(Func0<? extends Observable<? extends TClosing>> bufferClosingSelector)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(int count)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(int count, int skip)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, long timeshift, TimeUnit unit)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, long timeshift, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, TimeUnit unit)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, TimeUnit unit, int count)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, TimeUnit unit, int count, Scheduler scheduler)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      Observable<List<T>> buffer(long timespan, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      <TOpening,TClosing> Observable<List<T>> buffer(Observable<? extends TOpening> bufferOpenings, Func1<? super TOpening,? extends Observable<? extends TClosing>> bufferClosingSelector)
      Returns an Observable that emits buffers of items it collects from the source Observable.
      <B> Observable<List<T>> buffer(Observable<B> boundary)
      Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item.
      <B> Observable<List<T>> buffer(Observable<B> boundary, int initialCapacity)
      Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item.
      Observable<T> cache()
      Caches the emissions from the source Observable and replays them in order to any subsequent Subscribers.
      Observable<T> cache(int capacity)
      Caches emissions from the source Observable and replays them in order to any subsequent Subscribers.
      <R> Observable<R> cast(Class<R> klass)
      Returns an Observable that emits the items emitted by the source Observable, converted to the specified type.
      <R> Observable<R> collect(Func0<R> stateFactory, Action2<R,? super T> collector)
      Collects items emitted by the source Observable into a single mutable data structure and returns an Observable that emits this structure.
      static <T,R> Observable<R> combineLatest(List<? extends Observable<? extends T>> sources, FuncN<? extends R> combineFunction)
      Combines a list of source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Func2<? super T1,? super T2,? extends R> combineFunction)
      Combines two source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from either of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Func3<? super T1,? super T2,? super T3,? extends R> combineFunction)
      Combines three source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Func4<? super T1,? super T2,? super T3,? super T4,? extends R> combineFunction)
      Combines four source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,T5,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> combineFunction)
      Combines five source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,T5,T6,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> combineFunction)
      Combines six source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> combineFunction)
      Combines seven source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Observable<? extends T8> o8, Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> combineFunction)
      Combines eight source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> combineLatest(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Observable<? extends T8> o8, Observable<? extends T9> o9, Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> combineFunction)
      Combines nine source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
      <R> Observable<R> compose(Observable.Transformer<? super T,? extends R> transformer)
      Transform an Observable by applying a particular Transformer function to it.
      static <T> Observable<T> concat(Observable<? extends Observable<? extends T>> observables)
      Returns an Observable that emits the items emitted by each of the Observables emitted by the source Observable, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2)
      Returns an Observable that emits the items emitted by two Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3)
      Returns an Observable that emits the items emitted by three Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4)
      Returns an Observable that emits the items emitted by four Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5)
      Returns an Observable that emits the items emitted by five Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6)
      Returns an Observable that emits the items emitted by six Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7)
      Returns an Observable that emits the items emitted by seven Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8)
      Returns an Observable that emits the items emitted by eight Observables, one after the other, without interleaving them.
      static <T> Observable<T> concat(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8, Observable<? extends T> t9)
      Returns an Observable that emits the items emitted by nine Observables, one after the other, without interleaving them.
      <R> Observable<R> concatMap(Func1<? super T,? extends Observable<? extends R>> func)
      Returns a new Observable that emits items resulting from applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then emitting the items that result from concatinating those resulting Observables.
      Observable<T> concatWith(Observable<? extends T> t1)
      Returns an Observable that emits the items emitted from the current Observable, then the next, one after the other, without interleaving them.
      Observable<Boolean> contains(Object element)
      Returns an Observable that emits a Boolean that indicates whether the source Observable emitted a specified item.
      Observable<Integer> count()
      Returns an Observable that emits the count of the total number of items emitted by the source Observable.
      Observable<Long> countLong()
      Returns an Observable that counts the total number of items emitted by the source Observable and emits this count as a 64-bit Long.
      static <T> Observable<T> create(Observable.OnSubscribe<T> f)
      Returns an Observable that will execute the specified function when a Subscriber subscribes to it.
      <U> Observable<T> debounce(Func1<? super T,? extends Observable<U>> debounceSelector)
      Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by another item within a computed debounce duration.
      Observable<T> debounce(long timeout, TimeUnit unit)
      Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by newer items before a timeout value expires.
      Observable<T> debounce(long timeout, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by newer items before a timeout value expires on a specified Scheduler.
      Observable<T> defaultIfEmpty(T defaultValue)
      Returns an Observable that emits the items emitted by the source Observable or a specified default item if the source Observable is empty.
      static <T> Observable<T> defer(Func0<Observable<T>> observableFactory)
      Returns an Observable that calls an Observable factory to create an Observable for each new Observer that subscribes.
      <U,V> Observable<T> delay(Func0<? extends Observable<U>> subscriptionDelay, Func1<? super T,? extends Observable<V>> itemDelay)
      Returns an Observable that delays the subscription to and emissions from the souce Observable via another Observable on a per-item basis.
      <U> Observable<T> delay(Func1<? super T,? extends Observable<U>> itemDelay)
      Returns an Observable that delays the emissions of the source Observable via another Observable on a per-item basis.
      Observable<T> delay(long delay, TimeUnit unit)
      Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay.
      Observable<T> delay(long delay, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay.
      <U> Observable<T> delaySubscription(Func0<? extends Observable<U>> subscriptionDelay)
      Returns an Observable that delays the subscription to the source Observable until a second Observable emits an item.
      Observable<T> delaySubscription(long delay, TimeUnit unit)
      Returns an Observable that delays the subscription to the source Observable by a given amount of time.
      Observable<T> delaySubscription(long delay, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that delays the subscription to the source Observable by a given amount of time, both waiting and subscribing on a given Scheduler.
      <T2> Observable<T2> dematerialize()
      Returns an Observable that reverses the effect of materialize by transforming the Notification objects emitted by the source Observable into the items or notifications they represent.
      Observable<T> distinct()
      Returns an Observable that emits all items emitted by the source Observable that are distinct.
      <U> Observable<T> distinct(Func1<? super T,? extends U> keySelector)
      Returns an Observable that emits all items emitted by the source Observable that are distinct according to a key selector function.
      Observable<T> distinctUntilChanged()
      Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors.
      <U> Observable<T> distinctUntilChanged(Func1<? super T,? extends U> keySelector)
      Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors, according to a key selector function.
      Observable<T> doOnCompleted(Action0 onCompleted)
      Modifies the source Observable so that it invokes an action when it calls onCompleted.
      Observable<T> doOnEach(Action1<Notification<? super T>> onNotification)
      Modifies the source Observable so that it invokes an action for each item it emits.
      Observable<T> doOnEach(Observer<? super T> observer)
      Modifies the source Observable so that it notifies an Observer for each item it emits.
      Observable<T> doOnError(Action1<Throwable> onError)
      Modifies the source Observable so that it invokes an action if it calls onError.
      Observable<T> doOnNext(Action1<? super T> onNext)
      Modifies the source Observable so that it invokes an action when it calls onNext.
      Observable<T> doOnSubscribe(Action0 subscribe)
      Modifies the source Observable so that it invokes the given action when it is subscribed from its subscribers.
      Observable<T> doOnTerminate(Action0 onTerminate)
      Modifies the source Observable so that it invokes an action when it calls onCompleted or onError.
      Observable<T> doOnUnsubscribe(Action0 unsubscribe)
      Modifies the source Observable so that it invokes the given action when it is unsubscribed from its subscribers.
      Observable<T> elementAt(int index)
      Returns an Observable that emits the single item at a specified index in a sequence of emissions from a source Observbable.
      Observable<T> elementAtOrDefault(int index, T defaultValue)
      Returns an Observable that emits the item found at a specified index in a sequence of emissions from a source Observable, or a default item if that index is out of range.
      static <T> Observable<T> empty()
      Returns an Observable that emits no items to the Observer and immediately invokes its onCompleted method.
      static <T> Observable<T> error(Throwable exception)
      Returns an Observable that invokes an Observer's onError method when the Observer subscribes to it.
      Observable<Boolean> exists(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false.
      Observable<T> filter(Func1<? super T,Boolean> predicate)
      Filters items emitted by an Observable by only emitting those that satisfy a specified predicate.
      Observable<T> finallyDo(Action0 action)
      Registers an Action0 to be called when this Observable invokes either onCompleted or onError.
      Observable<T> first()
      Returns an Observable that emits only the very first item emitted by the source Observable, or notifies of an NoSuchElementException if the source Observable is empty.
      Observable<T> first(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or notifies of an NoSuchElementException if no such items are emitted.
      Observable<T> firstOrDefault(T defaultValue)
      Returns an Observable that emits only the very first item emitted by the source Observable, or a default item if the source Observable completes without emitting anything.
      Observable<T> firstOrDefault(T defaultValue, Func1<? super T,Boolean> predicate)
      Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or a default item if the source Observable emits no such items.
      <R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends R>> func)
      Returns an Observable that emits items based on applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then merging those resulting Observables and emitting the results of this merger.
      <R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends R>> onNext, Func1<? super Throwable,? extends Observable<? extends R>> onError, Func0<? extends Observable<? extends R>> onCompleted)
      Returns an Observable that applies a function to each item emitted or notification raised by the source Observable and then flattens the Observables returned from these functions and emits the resulting items.
      <U,R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends U>> collectionSelector, Func2<? super T,? super U,? extends R> resultSelector)
      Returns an Observable that emits the results of a specified function to the pair of values emitted by the source Observable and a specified collection Observable.
      <R> Observable<R> flatMapIterable(Func1<? super T,? extends Iterable<? extends R>> collectionSelector)
      Returns an Observable that merges each item emitted by the source Observable with the values in an Iterable corresponding to that item that is generated by a selector.
      <U,R> Observable<R> flatMapIterable(Func1<? super T,? extends Iterable<? extends U>> collectionSelector, Func2<? super T,? super U,? extends R> resultSelector)
      Returns an Observable that emits the results of applying a function to the pair of values from the source Observable and an Iterable corresponding to that item that is generated by a selector.
      void forEach(Action1<? super T> onNext)
      Subscribes to the Observable and receives notifications for each element.
      void forEach(Action1<? super T> onNext, Action1<Throwable> onError)
      Subscribes to the Observable and receives notifications for each element and error events.
      void forEach(Action1<? super T> onNext, Action1<Throwable> onError, Action0 onComplete)
      Subscribes to the Observable and receives notifications for each element and the terminal events.
      static <T> Observable<T> from(Future<? extends T> future)
      Converts a Future into an Observable.
      static <T> Observable<T> from(Future<? extends T> future, long timeout, TimeUnit unit)
      Converts a Future into an Observable, with a timeout on the Future.
      static <T> Observable<T> from(Future<? extends T> future, Scheduler scheduler)
      Converts a Future, operating on a specified Scheduler, into an Observable.
      static <T> Observable<T> from(Iterable<? extends T> iterable)
      Converts an Iterable sequence into an Observable that emits the items in the sequence.
      static <T> Observable<T> from(T[] array)
      Converts an Array into an Observable that emits the items in the Array.
      <K> Observable<GroupedObservable<K,T>> groupBy(Func1<? super T,? extends K> keySelector)
      Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items as GroupedObservables, one GroupedObservable per group.
      <K,R> Observable<GroupedObservable<K,R>> groupBy(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends R> elementSelector)
      Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items as GroupedObservables, one GroupedObservable per group.
      <T2,D1,D2,R> Observable<R> groupJoin(Observable<T2> right, Func1<? super T,? extends Observable<D1>> leftDuration, Func1<? super T2,? extends Observable<D2>> rightDuration, Func2<? super T,? super Observable<T2>,? extends R> resultSelector)
      Returns an Observable that correlates two Observables when they overlap in time and groups the results.
      Observable<T> ignoreElements()
      Ignores all items emitted by the source Observable and only calls onCompleted or onError.
      static Observable<Long> interval(long interval, TimeUnit unit)
      Returns an Observable that emits a sequential number every specified interval of time.
      static Observable<Long> interval(long interval, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits a sequential number every specified interval of time, on a specified Scheduler.
      Observable<Boolean> isEmpty()
      Returns an Observable that emits true if the source Observable is empty, otherwise false.
      <TRight,TLeftDuration,TRightDuration,R> Observable<R> join(Observable<TRight> right, Func1<T,Observable<TLeftDuration>> leftDurationSelector, Func1<TRight,Observable<TRightDuration>> rightDurationSelector, Func2<T,TRight,R> resultSelector)
      Correlates the items emitted by two Observables based on overlapping durations.
      static <T> Observable<T> just(T value)
      Returns an Observable that emits a single item and then completes.
      static <T> Observable<T> just(T t1, T t2)
      Converts two items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3)
      Converts three items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4)
      Converts four items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5)
      Converts five items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6)
      Converts six items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7)
      Converts seven items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8)
      Converts eight items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9)
      Converts nine items into an Observable that emits those items.
      static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10)
      Converts ten items into an Observable that emits those items.
      Observable<T> last()
      Returns an Observable that emits the last item emitted by the source Observable or notifies observers of a NoSuchElementException if the source Observable is empty.
      Observable<T> last(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits only the last item emitted by the source Observable that satisfies a given condition, or notifies of a NoSuchElementException if no such items are emitted.
      Observable<T> lastOrDefault(T defaultValue)
      Returns an Observable that emits only the last item emitted by the source Observable, or a default item if the source Observable completes without emitting any items.
      Observable<T> lastOrDefault(T defaultValue, Func1<? super T,Boolean> predicate)
      Returns an Observable that emits only the last item emitted by the source Observable that satisfies a specified condition, or a default item if no such item is emitted by the source Observable.
      <R> Observable<R> lift(Observable.Operator<? extends R,? super T> lift)
      Lifts a function to the current Observable and returns a new Observable that when subscribed to will pass the values of the current Observable through the Operator function.
      Observable<T> limit(int num)
      Returns an Observable that emits only the first num items emitted by the source Observable.
      <R> Observable<R> map(Func1<? super T,? extends R> func)
      Returns an Observable that applies a specified function to each item emitted by the source Observable and emits the results of these function applications.
      Observable<Notification<T>> materialize()
      Returns an Observable that represents all of the emissions and notifications from the source Observable into emissions marked with their original types within Notification objects.
      static <T> Observable<T> merge(Iterable<? extends Observable<? extends T>> sequences)
      Flattens an Iterable of Observables into one Observable, without any transformation.
      static <T> Observable<T> merge(Iterable<? extends Observable<? extends T>> sequences, int maxConcurrent)
      Flattens an Iterable of Observables into one Observable, without any transformation, while limiting the number of concurrent subscriptions to these Observables.
      static <T> Observable<T> merge(Observable<? extends Observable<? extends T>> source)
      Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation.
      static <T> Observable<T> merge(Observable<? extends Observable<? extends T>> source, int maxConcurrent)
      Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation, while limiting the maximum number of concurrent subscriptions to these Observables.
      static <T> Observable<T> merge(Observable<? extends T>[] sequences)
      Flattens an Array of Observables into one Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2)
      Flattens two Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3)
      Flattens three Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4)
      Flattens four Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5)
      Flattens five Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6)
      Flattens six Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7)
      Flattens seven Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8)
      Flattens eight Observables into a single Observable, without any transformation.
      static <T> Observable<T> merge(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8, Observable<? extends T> t9)
      Flattens nine Observables into a single Observable, without any transformation.
      static <T> Observable<T> mergeDelayError(Observable<? extends Observable<? extends T>> source)
      Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2)
      Flattens two Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from each of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3)
      Flattens three Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4)
      Flattens four Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5)
      Flattens five Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6)
      Flattens six Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7)
      Flattens seven Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8)
      Flattens eight Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      static <T> Observable<T> mergeDelayError(Observable<? extends T> t1, Observable<? extends T> t2, Observable<? extends T> t3, Observable<? extends T> t4, Observable<? extends T> t5, Observable<? extends T> t6, Observable<? extends T> t7, Observable<? extends T> t8, Observable<? extends T> t9)
      Flattens nine Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.
      Observable<T> mergeWith(Observable<? extends T> t1)
      Flattens this and another Observable into a single Observable, without any transformation.
      Observable<Observable<T>> nest()
      Converts the source Observable<T> into an Observable<Observable<T>> that emits the source Observable as its single emission.
      static <T> Observable<T> never()
      Returns an Observable that never sends any items or notifications to an Observer.
      Observable<T> observeOn(Scheduler scheduler)
      Modifies an Observable to perform its emissions and notifications on a specified Scheduler, asynchronously with an unbounded buffer.
      <R> Observable<R> ofType(Class<R> klass)
      Filters the items emitted by an Observable, only emitting those of the specified type.
      Observable<T> onBackpressureBuffer()
      Instructs an Observable that is emitting items faster than its observer can consume them to buffer these items indefinitely until they can be emitted.
      Observable<T> onBackpressureDrop()
      Instructs an Observable that is emitting items faster than its observer can consume them to discard, rather than emit, those items that its observer is not prepared to observe.
      Observable<T> onErrorResumeNext(Func1<Throwable,? extends Observable<? extends T>> resumeFunction)
      Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error.
      Observable<T> onErrorResumeNext(Observable<? extends T> resumeSequence)
      Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error.
      Observable<T> onErrorReturn(Func1<Throwable,? extends T> resumeFunction)
      Instructs an Observable to emit an item (returned by a specified function) rather than invoking onError if it encounters an error.
      Observable<T> onExceptionResumeNext(Observable<? extends T> resumeSequence)
      Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an Exception.
      ConnectableObservable<T> publish()
      Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called before it begins emitting items to those Observers that have subscribed to it.
      <R> Observable<R> publish(Func1<? super Observable<T>,? extends Observable<R>> selector)
      Returns an Observable that emits the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the underlying sequence.
      static Observable<Integer> range(int start, int count)
      Returns an Observable that emits a sequence of Integers within a specified range.
      static Observable<Integer> range(int start, int count, Scheduler scheduler)
      Returns an Observable that emits a sequence of Integers within a specified range, on a specified Scheduler.
      Observable<T> reduce(Func2<T,T,T> accumulator)
      Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, and emits the final result from the final call to your function as its sole item.
      <R> Observable<R> reduce(R initialValue, Func2<R,? super T,R> accumulator)
      Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a specified seed value, then feeds the result of that function along with the second item emitted by an Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the final result from the final call to your function as its sole item.
      Observable<T> repeat()
      Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely.
      Observable<T> repeat(long count)
      Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times.
      Observable<T> repeat(long count, Scheduler scheduler)
      Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times, on a particular Scheduler.
      Observable<T> repeat(Scheduler scheduler)
      Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely, on a particular Scheduler.
      Observable<T> repeatWhen(Func1<? super Observable<? extends Void>,? extends Observable<?>> notificationHandler)
      Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted.
      Observable<T> repeatWhen(Func1<? super Observable<? extends Void>,? extends Observable<?>> notificationHandler, Scheduler scheduler)
      Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted.
      ConnectableObservable<T> replay()
      Returns a ConnectableObservable that shares a single subscription to the underlying Observable that will replay all of its items and notifications to any future Observer.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector)
      Returns an Observable that emits items that are the results of invoking a specified selector on the items emitted by a ConnectableObservable that shares a single subscription to the source Observable.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, int bufferSize)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying bufferSize notifications.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, int bufferSize, long time, TimeUnit unit)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more than bufferSize items that were emitted within a specified time window.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, int bufferSize, long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more than bufferSize items that were emitted within a specified time window.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, int bufferSize, Scheduler scheduler)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying a maximum of bufferSize items.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, long time, TimeUnit unit)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.
      <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector, Scheduler scheduler)
      Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable.
      ConnectableObservable<T> replay(int bufferSize)
      Returns a ConnectableObservable that shares a single subscription to the source Observable that replays at most bufferSize items emitted by that Observable.
      ConnectableObservable<T> replay(int bufferSize, long time, TimeUnit unit)
      Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items that were emitted during a specified time window.
      ConnectableObservable<T> replay(int bufferSize, long time, TimeUnit unit, Scheduler scheduler)
      Returns a ConnectableObservable that shares a single subscription to the source Observable and that replays a maximum of bufferSize items that are emitted within a specified time window.
      ConnectableObservable<T> replay(int bufferSize, Scheduler scheduler)
      Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items emitted by that Observable.
      ConnectableObservable<T> replay(long time, TimeUnit unit)
      Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window.
      ConnectableObservable<T> replay(long time, TimeUnit unit, Scheduler scheduler)
      Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window.
      ConnectableObservable<T> replay(Scheduler scheduler)
      Returns a ConnectableObservable that shares a single subscription to the source Observable that will replay all of its items and notifications to any future Observer on the given Scheduler.
      Observable<T> retry()
      Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError (infinite retry count).
      Observable<T> retry(Func2<Integer,Throwable,Boolean> predicate)
      Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError and the predicate returns true for that specific exception and retry count.
      Observable<T> retry(long count)
      Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError up to a specified number of retries.
      Observable<T> retryWhen(Func1<? super Observable<? extends Throwable>,? extends Observable<?>> notificationHandler)
      Returns an Observable that emits the same values as the source observable with the exception of an onError.
      Observable<T> retryWhen(Func1<? super Observable<? extends Throwable>,? extends Observable<?>> notificationHandler, Scheduler scheduler)
      Returns an Observable that emits the same values as the source observable with the exception of an onError.
      Observable<T> sample(long period, TimeUnit unit)
      Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals.
      Observable<T> sample(long period, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals, where the intervals are defined on a particular Scheduler.
      <U> Observable<T> sample(Observable<U> sampler)
      Returns an Observable that, when the specified sampler Observable emits an item or completes, emits the most recently emitted item (if any) emitted by the source Observable since the previous emission from the sampler Observable.
      Observable<T> scan(Func2<T,T,T> accumulator)
      Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations.
      <R> Observable<R> scan(R initialValue, Func2<R,? super T,R> accumulator)
      Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a seed value, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations.
      static <T> Observable<Boolean> sequenceEqual(Observable<? extends T> first, Observable<? extends T> second)
      Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise.
      static <T> Observable<Boolean> sequenceEqual(Observable<? extends T> first, Observable<? extends T> second, Func2<? super T,? super T,Boolean> equality)
      Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise based on the results of a specified equality function.
      Observable<T> serialize()
      Forces an Observable's emissions and notifications to be serialized and for it to obey the Rx contract in other ways.
      Observable<T> share()
      Returns a new Observable that multicasts (shares) the original Observable.
      Observable<T> single()
      Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item.
      Observable<T> single(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits the single item emitted by the source Observable that matches a specified predicate, if that Observable emits one such item.
      Observable<T> singleOrDefault(T defaultValue)
      Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item, or a default item if the source Observable emits no items.
      Observable<T> singleOrDefault(T defaultValue, Func1<? super T,Boolean> predicate)
      Returns an Observable that emits the single item emitted by the source Observable that matches a predicate, if that Observable emits only one such item, or a default item if the source Observable emits no such items.
      Observable<T> skip(int num)
      Returns an Observable that skips the first num items emitted by the source Observable and emits the remainder.
      Observable<T> skip(long time, TimeUnit unit)
      Returns an Observable that skips values emitted by the source Observable before a specified time window elapses.
      Observable<T> skip(long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that skips values emitted by the source Observable before a specified time window on a specified Scheduler elapses.
      Observable<T> skipLast(int count)
      Returns an Observable that drops a specified number of items from the end of the sequence emitted by the source Observable.
      Observable<T> skipLast(long time, TimeUnit unit)
      Returns an Observable that drops items emitted by the source Observable during a specified time window before the source completes.
      Observable<T> skipLast(long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that drops items emitted by the source Observable during a specified time window (defined on a specified scheduler) before the source completes.
      <U> Observable<T> skipUntil(Observable<U> other)
      Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.
      Observable<T> skipWhile(Func1<? super T,Boolean> predicate)
      Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds true, but emits all further source items as soon as the condition becomes false.
      Observable<T> startWith(Iterable<T> values)
      Returns an Observable that emits the items in a specified Iterable before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(Observable<T> values)
      Returns an Observable that emits the items in a specified Observable before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1)
      Returns an Observable that emits a specified item before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4, T t5)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4, T t5, T t6)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4, T t5, T t6, T t7)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Observable<T> startWith(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9)
      Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.
      Subscription subscribe()
      Subscribes to an Observable but ignore its emissions and notifications.
      Subscription subscribe(Action1<? super T> onNext)
      Subscribes to an Observable and provides a callback to handle the items it emits.
      Subscription subscribe(Action1<? super T> onNext, Action1<Throwable> onError)
      Subscribes to an Observable and provides callbacks to handle the items it emits and any error notification it issues.
      Subscription subscribe(Action1<? super T> onNext, Action1<Throwable> onError, Action0 onComplete)
      Subscribes to an Observable and provides callbacks to handle the items it emits and any error or completion notification it issues.
      Subscription subscribe(Observer<? super T> observer)
      Subscribes to an Observable and provides an Observer that implements functions to handle the items the Observable emits and any error or completion notification it issues.
      Subscription subscribe(Subscriber<? super T> subscriber)
      Subscribes to an Observable and provides a Subscriber that implements functions to handle the items the Observable emits and any error or completion notification it issues.
      Observable<T> subscribeOn(Scheduler scheduler)
      Asynchronously subscribes Observers to this Observable on the specified Scheduler.
      <R> Observable<R> switchMap(Func1<? super T,? extends Observable<? extends R>> func)
      Returns a new Observable by applying a function that you supply to each item emitted by the source Observable that returns an Observable, and then emitting the items emitted by the most recently emitted of these Observables.
      static <T> Observable<T> switchOnNext(Observable<? extends Observable<? extends T>> sequenceOfSequences)
      Converts an Observable that emits Observables into an Observable that emits the items emitted by the most recently emitted of those Observables.
      Observable<T> take(int num)
      Returns an Observable that emits only the first num items emitted by the source Observable.
      Observable<T> take(long time, TimeUnit unit)
      Returns an Observable that emits those items emitted by source Observable before a specified time runs out.
      Observable<T> take(long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits those items emitted by source Observable before a specified time (on a specified Scheduler) runs out.
      Observable<T> takeFirst(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition.
      Observable<T> takeLast(int count)
      Returns an Observable that emits only the last count items emitted by the source Observable.
      Observable<T> takeLast(int count, long time, TimeUnit unit)
      Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed.
      Observable<T> takeLast(int count, long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a given Scheduler.
      Observable<T> takeLast(long time, TimeUnit unit)
      Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed.
      Observable<T> takeLast(long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a specified Scheduler.
      Observable<List<T>> takeLastBuffer(int count)
      Returns an Observable that emits a single List containing the last count elements emitted by the source Observable.
      Observable<List<T>> takeLastBuffer(int count, long time, TimeUnit unit)
      Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time before the source Observable completed.
      Observable<List<T>> takeLastBuffer(int count, long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time (on a specified Scheduler) before the source Observable completed.
      Observable<List<T>> takeLastBuffer(long time, TimeUnit unit)
      Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed.
      Observable<List<T>> takeLastBuffer(long time, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed, where the timing information is provided by the given Scheduler.
      <E> Observable<T> takeUntil(Observable<? extends E> other)
      Returns an Observable that emits the items emitted by the source Observable until a second Observable emits an item.
      Observable<T> takeWhile(Func1<? super T,Boolean> predicate)
      Returns an Observable that emits items emitted by the source Observable so long as each item satisfied a specified condition, and then completes as soon as this condition is not satisfied.
      Observable<T> throttleFirst(long windowDuration, TimeUnit unit)
      Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration.
      Observable<T> throttleFirst(long skipDuration, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration, where the windows are managed by a specified Scheduler.
      Observable<T> throttleLast(long intervalDuration, TimeUnit unit)
      Returns an Observable that emits only the last item emitted by the source Observable during sequential time windows of a specified duration.
      Observable<T> throttleLast(long intervalDuration, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits only the last item emitted by the source Observable during sequential time windows of a specified duration, where the duration is governed by a specified Scheduler.
      Observable<T> throttleWithTimeout(long timeout, TimeUnit unit)
      Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window.
      Observable<T> throttleWithTimeout(long timeout, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window, where the time window is governed by a specified Scheduler.
      Observable<TimeInterval<T>> timeInterval()
      Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable.
      Observable<TimeInterval<T>> timeInterval(Scheduler scheduler)
      Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable, where this interval is computed on a specified Scheduler.
      <U,V> Observable<T> timeout(Func0<? extends Observable<U>> firstTimeoutSelector, Func1<? super T,? extends Observable<V>> timeoutSelector)
      Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables.
      <U,V> Observable<T> timeout(Func0<? extends Observable<U>> firstTimeoutSelector, Func1<? super T,? extends Observable<V>> timeoutSelector, Observable<? extends T> other)
      Returns an Observable that mirrors the source Observable, but switches to a fallback Observable if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables.
      <V> Observable<T> timeout(Func1<? super T,? extends Observable<V>> timeoutSelector)
      Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item.
      <V> Observable<T> timeout(Func1<? super T,? extends Observable<V>> timeoutSelector, Observable<? extends T> other)
      Returns an Observable that mirrors the source Observable, but that switches to a fallback Observable if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item.
      Observable<T> timeout(long timeout, TimeUnit timeUnit)
      Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item.
      Observable<T> timeout(long timeout, TimeUnit timeUnit, Observable<? extends T> other)
      Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item.
      Observable<T> timeout(long timeout, TimeUnit timeUnit, Observable<? extends T> other, Scheduler scheduler)
      Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item using a specified Scheduler.
      Observable<T> timeout(long timeout, TimeUnit timeUnit, Scheduler scheduler)
      Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item, where this policy is governed on a specified Scheduler.
      static Observable<Long> timer(long initialDelay, long period, TimeUnit unit)
      Returns an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter.
      static Observable<Long> timer(long initialDelay, long period, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter, on a specified Scheduler.
      static Observable<Long> timer(long delay, TimeUnit unit)
      Returns an Observable that emits one item after a specified delay, and then completes.
      static Observable<Long> timer(long delay, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits one item after a specified delay, on a specified Scheduler, and then completes.
      Observable<Timestamped<T>> timestamp()
      Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object.
      Observable<Timestamped<T>> timestamp(Scheduler scheduler)
      Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object whose timestamps are provided by a specified Scheduler.
      BlockingObservable<T> toBlocking()
      Converts an Observable into a BlockingObservable (an Observable with blocking operators).
      Observable<List<T>> toList()
      Returns an Observable that emits a single item, a list composed of all the items emitted by the source Observable.
      <K> Observable<Map<K,T>> toMap(Func1<? super T,? extends K> keySelector)
      Returns an Observable that emits a single HashMap containing all items emitted by the source Observable, mapped by the keys returned by a specified keySelector function.
      <K,V> Observable<Map<K,V>> toMap(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends V> valueSelector)
      Returns an Observable that emits a single HashMap containing values corresponding to items emitted by the source Observable, mapped by the keys returned by a specified keySelector function.
      <K,V> Observable<Map<K,V>> toMap(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends V> valueSelector, Func0<? extends Map<K,V>> mapFactory)
      Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains keys and values extracted from the items emitted by the source Observable.
      <K> Observable<Map<K,Collection<T>>> toMultimap(Func1<? super T,? extends K> keySelector)
      Returns an Observable that emits a single HashMap that contains an ArrayList of items emitted by the source Observable keyed by a specified keySelector function.
      <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends V> valueSelector)
      Returns an Observable that emits a single HashMap that contains an ArrayList of values extracted by a specified valueSelector function from items emitted by the source Observable, keyed by a specified keySelector function.
      <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends V> valueSelector, Func0<? extends Map<K,Collection<V>>> mapFactory)
      Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains an ArrayList of values, extracted by a specified valueSelector function from items emitted by the source Observable and keyed by the keySelector function.
      <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector, Func1<? super T,? extends V> valueSelector, Func0<? extends Map<K,Collection<V>>> mapFactory, Func1<? super K,? extends Collection<V>> collectionFactory)
      Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains a custom collection of values, extracted by a specified valueSelector function from items emitted by the source Observable, and keyed by the keySelector function.
      Observable<List<T>> toSortedList()
      Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order.
      Observable<List<T>> toSortedList(Func2<? super T,? super T,Integer> sortFunction)
      Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order based on a specified comparison function.
      Subscription unsafeSubscribe(Subscriber<? super T> subscriber)
      Subscribes to an Observable and invokes Observable.OnSubscribe function without any contract protection, error handling, unsubscribe, or execution hooks.
      Observable<T> unsubscribeOn(Scheduler scheduler)
      Modifies the source Observable so that subscribers will unsubscribe from it on a specified Scheduler.
      static <T,Resource> Observable<T> using(Func0<Resource> resourceFactory, Func1<? super Resource,? extends Observable<? extends T>> observableFactory, Action1<? super Resource> disposeAction)
      Constructs an Observable that creates a dependent resource object.
      <TClosing> Observable<Observable<T>> window(Func0<? extends Observable<? extends TClosing>> closingSelector)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(int count)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(int count, int skip)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, long timeshift, TimeUnit unit)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, long timeshift, TimeUnit unit, int count, Scheduler scheduler)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, long timeshift, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, TimeUnit unit)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, TimeUnit unit, int count)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, TimeUnit unit, int count, Scheduler scheduler)
      Returns an Observable that emits windows of items it collects from the source Observable.
      Observable<Observable<T>> window(long timespan, TimeUnit unit, Scheduler scheduler)
      Returns an Observable that emits windows of items it collects from the source Observable.
      <TOpening,TClosing> Observable<Observable<T>> window(Observable<? extends TOpening> windowOpenings, Func1<? super TOpening,? extends Observable<? extends TClosing>> closingSelector)
      Returns an Observable that emits windows of items it collects from the source Observable.
      <U> Observable<Observable<T>> window(Observable<U> boundary)
      Returns an Observable that emits non-overlapping windows of items it collects from the source Observable where the boundary of each window is determined by the items emitted from a specified boundary-governing Observable.
      static <R> Observable<R> zip(Iterable<? extends Observable<?>> ws, FuncN<? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an Iterable of other Observables.
      static <R> Observable<R> zip(Observable<? extends Observable<?>> ws, FuncN<? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of n items emitted, in sequence, by the n Observables emitted by a specified Observable.
      static <T1,T2,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Func2<? super T1,? super T2,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Observables.
      static <T1,T2,T3,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Func3<? super T1,? super T2,? super T3,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of three items emitted, in sequence, by three other Observables.
      static <T1,T2,T3,T4,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Func4<? super T1,? super T2,? super T3,? super T4,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of four items emitted, in sequence, by four other Observables.
      static <T1,T2,T3,T4,T5,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of five items emitted, in sequence, by five other Observables.
      static <T1,T2,T3,T4,T5,T6,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of six items emitted, in sequence, by six other Observables.
      static <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of seven items emitted, in sequence, by seven other Observables.
      static <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Observable<? extends T8> o8, Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of eight items emitted, in sequence, by eight other Observables.
      static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> zip(Observable<? extends T1> o1, Observable<? extends T2> o2, Observable<? extends T3> o3, Observable<? extends T4> o4, Observable<? extends T5> o5, Observable<? extends T6> o6, Observable<? extends T7> o7, Observable<? extends T8> o8, Observable<? extends T9> o9, Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> zipFunction)
      Returns an Observable that emits the results of a specified combiner function applied to combinations of nine items emitted, in sequence, by nine other Observables.
      <T2,R> Observable<R> zipWith(Iterable<? extends T2> other, Func2<? super T,? super T2,? extends R> zipFunction)
      Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and a specified Iterable sequence.
      <T2,R> Observable<R> zipWith(Observable<? extends T2> other, Func2<? super T,? super T2,? extends R> zipFunction)
      Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and another specified Observable.
    • Method Detail

      • create

        public static final <T> Observable<T> create(Observable.OnSubscribe<T> f)
        Returns an Observable that will execute the specified function when a Subscriber subscribes to it.

        Write the function you pass to create so that it behaves as an Observable: It should invoke the Subscriber's onNext, onError, and onCompleted methods appropriately.

        A well-formed Observable must invoke either the Subscriber's onCompleted method exactly once or its onError method exactly once.

        See Rx Design Guidelines (PDF) for detailed information.

        Scheduler:
        create does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of the items that this Observable emits
        Parameters:
        f - a function that accepts an Subscriber<T>, and invokes its onNext, onError, and onCompleted methods as appropriate
        Returns:
        an Observable that, when a Subscriber subscribes to it, will execute the specified function
        See Also:
        RxJava wiki: create
      • lift

        public final <R> Observable<R> lift(Observable.Operator<? extends R,? super T> lift)
        Lifts a function to the current Observable and returns a new Observable that when subscribed to will pass the values of the current Observable through the Operator function.

        In other words, this allows chaining Observers together on an Observable for acting on the values within the Observable.

        observable.map(...).filter(...).take(5).lift(new OperatorA()).lift(new OperatorB(...)).subscribe()

        If the operator you are creating is designed to act on the individual items emitted by a source Observable, use lift. If your operator is designed to transform the source Observable as a whole (for instance, by applying a particular set of existing RxJava operators to it) use compose(rx.Observable.Transformer<? super T, ? extends R>).

        Scheduler:
        lift does not operate by default on a particular Scheduler.
        Parameters:
        lift - the Operator that implements the Observable-operating function to be applied to the source Observable
        Returns:
        an Observable that is the result of applying the lifted Operator to the source Observable
        See Also:
        RxJava wiki: Implementing Your Own Operators
      • compose

        public <R> Observable<R> compose(Observable.Transformer<? super T,? extends R> transformer)
        Transform an Observable by applying a particular Transformer function to it.

        This method operates on the Observable itself whereas lift(rx.Observable.Operator<? extends R, ? super T>) operates on the Observable's Subscribers or Observers.

        If the operator you are creating is designed to act on the individual items emitted by a source Observable, use lift(rx.Observable.Operator<? extends R, ? super T>). If your operator is designed to transform the source Observable as a whole (for instance, by applying a particular set of existing RxJava operators to it) use compose.

        Scheduler:
        compose does not operate by default on a particular Scheduler.
        Parameters:
        transformer - implements the function that transforms the source Observable
        Returns:
        the source Observable, transformed by the transformer function
        See Also:
        RxJava wiki: Implementing Your Own Operators
      • amb

        public static final <T> Observable<T> amb(Iterable<? extends Observable<? extends T>> sources)
        Mirrors the one Observable in an Iterable of several Observables that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        sources - an Iterable of Observable sources competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2)
        Given two Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3)
        Given three Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4)
        Given four Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4,
                                                  Observable<? extends T> o5)
        Given five Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        o5 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4,
                                                  Observable<? extends T> o5,
                                                  Observable<? extends T> o6)
        Given six Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        o5 - an Observable competing to react first
        o6 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4,
                                                  Observable<? extends T> o5,
                                                  Observable<? extends T> o6,
                                                  Observable<? extends T> o7)
        Given seven Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        o5 - an Observable competing to react first
        o6 - an Observable competing to react first
        o7 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4,
                                                  Observable<? extends T> o5,
                                                  Observable<? extends T> o6,
                                                  Observable<? extends T> o7,
                                                  Observable<? extends T> o8)
        Given eight Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        o5 - an Observable competing to react first
        o6 - an Observable competing to react first
        o7 - an Observable competing to react first
        o8 - an observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • amb

        public static final <T> Observable<T> amb(Observable<? extends T> o1,
                                                  Observable<? extends T> o2,
                                                  Observable<? extends T> o3,
                                                  Observable<? extends T> o4,
                                                  Observable<? extends T> o5,
                                                  Observable<? extends T> o6,
                                                  Observable<? extends T> o7,
                                                  Observable<? extends T> o8,
                                                  Observable<? extends T> o9)
        Given nine Observables, mirrors the one that first emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        o1 - an Observable competing to react first
        o2 - an Observable competing to react first
        o3 - an Observable competing to react first
        o4 - an Observable competing to react first
        o5 - an Observable competing to react first
        o6 - an Observable competing to react first
        o7 - an Observable competing to react first
        o8 - an Observable competing to react first
        o9 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • combineLatest

        public static final <T1,T2,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                  Observable<? extends T2> o2,
                                                                  Func2<? super T1,? super T2,? extends R> combineFunction)
        Combines two source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from either of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                     Observable<? extends T2> o2,
                                                                     Observable<? extends T3> o3,
                                                                     Func3<? super T1,? super T2,? super T3,? extends R> combineFunction)
        Combines three source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                        Observable<? extends T2> o2,
                                                                        Observable<? extends T3> o3,
                                                                        Observable<? extends T4> o4,
                                                                        Func4<? super T1,? super T2,? super T3,? super T4,? extends R> combineFunction)
        Combines four source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,T5,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                           Observable<? extends T2> o2,
                                                                           Observable<? extends T3> o3,
                                                                           Observable<? extends T4> o4,
                                                                           Observable<? extends T5> o5,
                                                                           Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> combineFunction)
        Combines five source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        o5 - the fifth source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,T5,T6,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                              Observable<? extends T2> o2,
                                                                              Observable<? extends T3> o3,
                                                                              Observable<? extends T4> o4,
                                                                              Observable<? extends T5> o5,
                                                                              Observable<? extends T6> o6,
                                                                              Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> combineFunction)
        Combines six source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        o5 - the fifth source Observable
        o6 - the sixth source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                                 Observable<? extends T2> o2,
                                                                                 Observable<? extends T3> o3,
                                                                                 Observable<? extends T4> o4,
                                                                                 Observable<? extends T5> o5,
                                                                                 Observable<? extends T6> o6,
                                                                                 Observable<? extends T7> o7,
                                                                                 Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> combineFunction)
        Combines seven source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        o5 - the fifth source Observable
        o6 - the sixth source Observable
        o7 - the seventh source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                                    Observable<? extends T2> o2,
                                                                                    Observable<? extends T3> o3,
                                                                                    Observable<? extends T4> o4,
                                                                                    Observable<? extends T5> o5,
                                                                                    Observable<? extends T6> o6,
                                                                                    Observable<? extends T7> o7,
                                                                                    Observable<? extends T8> o8,
                                                                                    Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> combineFunction)
        Combines eight source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        o5 - the fifth source Observable
        o6 - the sixth source Observable
        o7 - the seventh source Observable
        o8 - the eighth source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> combineLatest(Observable<? extends T1> o1,
                                                                                       Observable<? extends T2> o2,
                                                                                       Observable<? extends T3> o3,
                                                                                       Observable<? extends T4> o4,
                                                                                       Observable<? extends T5> o5,
                                                                                       Observable<? extends T6> o6,
                                                                                       Observable<? extends T7> o7,
                                                                                       Observable<? extends T8> o8,
                                                                                       Observable<? extends T9> o9,
                                                                                       Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> combineFunction)
        Combines nine source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.

        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - the second source Observable
        o3 - the third source Observable
        o4 - the fourth source Observable
        o5 - the fifth source Observable
        o6 - the sixth source Observable
        o7 - the seventh source Observable
        o8 - the eighth source Observable
        o9 - the ninth source Observable
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • combineLatest

        public static final <T,R> Observable<R> combineLatest(List<? extends Observable<? extends T>> sources,
                                                              FuncN<? extends R> combineFunction)
        Combines a list of source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function.
        Scheduler:
        combineLatest does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the common base type of source values
        R - the result type
        Parameters:
        sources - the list of source Observables
        combineFunction - the aggregation function used to combine the items emitted by the source Observables
        Returns:
        an Observable that emits items that are the result of combining the items emitted by the source Observables by means of the given aggregation function
        See Also:
        RxJava wiki: combineLatest
      • concat

        public static final <T> Observable<T> concat(Observable<? extends Observable<? extends T>> observables)
        Returns an Observable that emits the items emitted by each of the Observables emitted by the source Observable, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        observables - an Observable that emits Observables
        Returns:
        an Observable that emits items all of the items emitted by the Observables emitted by observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2)
        Returns an Observable that emits the items emitted by two Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the two source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3)
        Returns an Observable that emits the items emitted by three Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the three source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4)
        Returns an Observable that emits the items emitted by four Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the four source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4,
                                                     Observable<? extends T> t5)
        Returns an Observable that emits the items emitted by five Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        t5 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the five source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4,
                                                     Observable<? extends T> t5,
                                                     Observable<? extends T> t6)
        Returns an Observable that emits the items emitted by six Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        t5 - an Observable to be concatenated
        t6 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the six source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4,
                                                     Observable<? extends T> t5,
                                                     Observable<? extends T> t6,
                                                     Observable<? extends T> t7)
        Returns an Observable that emits the items emitted by seven Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        t5 - an Observable to be concatenated
        t6 - an Observable to be concatenated
        t7 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the seven source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4,
                                                     Observable<? extends T> t5,
                                                     Observable<? extends T> t6,
                                                     Observable<? extends T> t7,
                                                     Observable<? extends T> t8)
        Returns an Observable that emits the items emitted by eight Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        t5 - an Observable to be concatenated
        t6 - an Observable to be concatenated
        t7 - an Observable to be concatenated
        t8 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the eight source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • concat

        public static final <T> Observable<T> concat(Observable<? extends T> t1,
                                                     Observable<? extends T> t2,
                                                     Observable<? extends T> t3,
                                                     Observable<? extends T> t4,
                                                     Observable<? extends T> t5,
                                                     Observable<? extends T> t6,
                                                     Observable<? extends T> t7,
                                                     Observable<? extends T> t8,
                                                     Observable<? extends T> t9)
        Returns an Observable that emits the items emitted by nine Observables, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated
        t2 - an Observable to be concatenated
        t3 - an Observable to be concatenated
        t4 - an Observable to be concatenated
        t5 - an Observable to be concatenated
        t6 - an Observable to be concatenated
        t7 - an Observable to be concatenated
        t8 - an Observable to be concatenated
        t9 - an Observable to be concatenated
        Returns:
        an Observable that emits items emitted by the nine source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • defer

        public static final <T> Observable<T> defer(Func0<Observable<T>> observableFactory)
        Returns an Observable that calls an Observable factory to create an Observable for each new Observer that subscribes. That is, for each subscriber, the actual Observable that subscriber observes is determined by the factory function.

        The defer Observer allows you to defer or delay emitting items from an Observable until such time as an Observer subscribes to the Observable. This allows an Observer to easily obtain updates or a refreshed version of the sequence.

        Scheduler:
        defer does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of the items emitted by the Observable
        Parameters:
        observableFactory - the Observable factory function to invoke for each Observer that subscribes to the resulting Observable
        Returns:
        an Observable whose Observers' subscriptions trigger an invocation of the given Observable factory function
        See Also:
        RxJava wiki: defer
      • empty

        public static final <T> Observable<T> empty()
        Returns an Observable that emits no items to the Observer and immediately invokes its onCompleted method.

        Scheduler:
        empty does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of the items (ostensibly) emitted by the Observable
        Returns:
        an Observable that emits no items to the Observer but immediately invokes the Observer's onCompleted method
        See Also:
        RxJava wiki: empty
      • error

        public static final <T> Observable<T> error(Throwable exception)
        Returns an Observable that invokes an Observer's onError method when the Observer subscribes to it.

        Scheduler:
        error does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of the items (ostensibly) emitted by the Observable
        Parameters:
        exception - the particular Throwable to pass to onError
        Returns:
        an Observable that invokes the Observer's onError method when the Observer subscribes to it
        See Also:
        RxJava wiki: error
      • from

        public static final <T> Observable<T> from(Future<? extends T> future)
        Converts a Future into an Observable.

        You can convert any object that supports the Future interface into an Observable that emits the return value of the Future.get() method of that object, by passing the object into the from method.

        Important note: This Observable is blocking; you cannot unsubscribe from it.

        Scheduler:
        from does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of object that the Future returns, and also the type of item to be emitted by the resulting Observable
        Parameters:
        future - the source Future
        Returns:
        an Observable that emits the item from the source Future
        See Also:
        RxJava wiki: from
      • from

        public static final <T> Observable<T> from(Future<? extends T> future,
                                                   long timeout,
                                                   TimeUnit unit)
        Converts a Future into an Observable, with a timeout on the Future.

        You can convert any object that supports the Future interface into an Observable that emits the return value of the Future.get() method of that object, by passing the object into the from method.

        Important note: This Observable is blocking; you cannot unsubscribe from it.

        Scheduler:
        from does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of object that the Future returns, and also the type of item to be emitted by the resulting Observable
        Parameters:
        future - the source Future
        timeout - the maximum time to wait before calling get
        unit - the TimeUnit of the timeout argument
        Returns:
        an Observable that emits the item from the source Future
        See Also:
        RxJava wiki: from
      • from

        public static final <T> Observable<T> from(Future<? extends T> future,
                                                   Scheduler scheduler)
        Converts a Future, operating on a specified Scheduler, into an Observable.

        You can convert any object that supports the Future interface into an Observable that emits the return value of the Future.get() method of that object, by passing the object into the from method.

        Scheduler:
        you specify which Scheduler this operator will use
        Type Parameters:
        T - the type of object that the Future returns, and also the type of item to be emitted by the resulting Observable
        Parameters:
        future - the source Future
        scheduler - the Scheduler to wait for the Future on. Use a Scheduler such as Schedulers.io() that can block and wait on the Future
        Returns:
        an Observable that emits the item from the source Future
        See Also:
        RxJava wiki: from
      • from

        public static final <T> Observable<T> from(Iterable<? extends T> iterable)
        Converts an Iterable sequence into an Observable that emits the items in the sequence.

        Scheduler:
        from does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of items in the Iterable sequence and the type of items to be emitted by the resulting Observable
        Parameters:
        iterable - the source Iterable sequence
        Returns:
        an Observable that emits each item in the source Iterable sequence
        See Also:
        RxJava wiki: from
      • from

        public static final <T> Observable<T> from(T[] array)
        Converts an Array into an Observable that emits the items in the Array.

        Scheduler:
        from does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of items in the Array and the type of items to be emitted by the resulting Observable
        Parameters:
        array - the source Array
        Returns:
        an Observable that emits each item in the source Array
        See Also:
        RxJava wiki: from
      • interval

        public static final Observable<Long> interval(long interval,
                                                      TimeUnit unit)
        Returns an Observable that emits a sequential number every specified interval of time.

        Scheduler:
        interval operates by default on the computation Scheduler.
        Parameters:
        interval - interval size in time units (see below)
        unit - time units to use for the interval size
        Returns:
        an Observable that emits a sequential number each time interval
        See Also:
        RxJava wiki: interval
      • interval

        public static final Observable<Long> interval(long interval,
                                                      TimeUnit unit,
                                                      Scheduler scheduler)
        Returns an Observable that emits a sequential number every specified interval of time, on a specified Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        interval - interval size in time units (see below)
        unit - time units to use for the interval size
        scheduler - the Scheduler to use for scheduling the items
        Returns:
        an Observable that emits a sequential number each time interval
        See Also:
        RxJava wiki: interval
      • just

        public static final <T> Observable<T> just(T value)
        Returns an Observable that emits a single item and then completes.

        To convert any object into an Observable that emits that object, pass that object into the just method.

        This is similar to the from(java.lang.Object[]) method, except that from will convert an Iterable object into an Observable that emits each of the items in the Iterable, one at a time, while the just method converts an Iterable into an Observable that emits the entire Iterable as a single item.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of that item
        Parameters:
        value - the item to emit
        Returns:
        an Observable that emits value as a single item and then completes
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2)
        Converts two items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3)
        Converts three items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4)
        Converts four items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5)
        Converts five items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5,
                                                   T t6)
        Converts six items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        t6 - sixth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5,
                                                   T t6,
                                                   T t7)
        Converts seven items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        t6 - sixth item
        t7 - seventh item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5,
                                                   T t6,
                                                   T t7,
                                                   T t8)
        Converts eight items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        t6 - sixth item
        t7 - seventh item
        t8 - eighth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5,
                                                   T t6,
                                                   T t7,
                                                   T t8,
                                                   T t9)
        Converts nine items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        t6 - sixth item
        t7 - seventh item
        t8 - eighth item
        t9 - ninth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • just

        public static final <T> Observable<T> just(T t1,
                                                   T t2,
                                                   T t3,
                                                   T t4,
                                                   T t5,
                                                   T t6,
                                                   T t7,
                                                   T t8,
                                                   T t9,
                                                   T t10)
        Converts ten items into an Observable that emits those items.

        Scheduler:
        just does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of these items
        Parameters:
        t1 - first item
        t2 - second item
        t3 - third item
        t4 - fourth item
        t5 - fifth item
        t6 - sixth item
        t7 - seventh item
        t8 - eighth item
        t9 - ninth item
        t10 - tenth item
        Returns:
        an Observable that emits each item
        See Also:
        RxJava wiki: just
      • merge

        public static final <T> Observable<T> merge(Iterable<? extends Observable<? extends T>> sequences)
        Flattens an Iterable of Observables into one Observable, without any transformation.

        You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        sequences - the Iterable of Observables
        Returns:
        an Observable that emits items that are the result of flattening the items emitted by the Observables in the Iterable
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Iterable<? extends Observable<? extends T>> sequences,
                                                    int maxConcurrent)
        Flattens an Iterable of Observables into one Observable, without any transformation, while limiting the number of concurrent subscriptions to these Observables.

        You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        sequences - the Iterable of Observables
        maxConcurrent - the maximum number of Observables that may be subscribed to concurrently
        Returns:
        an Observable that emits items that are the result of flattening the items emitted by the Observables in the Iterable
        Throws:
        IllegalArgumentException - if maxConcurrent is less than or equal to 0
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends Observable<? extends T>> source)
        Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation.

        You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        source - an Observable that emits Observables
        Returns:
        an Observable that emits items that are the result of flattening the Observables emitted by the source Observable
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends Observable<? extends T>> source,
                                                    int maxConcurrent)
        Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation, while limiting the maximum number of concurrent subscriptions to these Observables.

        You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        source - an Observable that emits Observables
        maxConcurrent - the maximum number of Observables that may be subscribed to concurrently
        Returns:
        an Observable that emits items that are the result of flattening the Observables emitted by the source Observable
        Throws:
        IllegalArgumentException - if maxConcurrent is less than or equal to 0
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2)
        Flattens two Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3)
        Flattens three Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4)
        Flattens four Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4,
                                                    Observable<? extends T> t5)
        Flattens five Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4,
                                                    Observable<? extends T> t5,
                                                    Observable<? extends T> t6)
        Flattens six Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4,
                                                    Observable<? extends T> t5,
                                                    Observable<? extends T> t6,
                                                    Observable<? extends T> t7)
        Flattens seven Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4,
                                                    Observable<? extends T> t5,
                                                    Observable<? extends T> t6,
                                                    Observable<? extends T> t7,
                                                    Observable<? extends T> t8)
        Flattens eight Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        t8 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T> t1,
                                                    Observable<? extends T> t2,
                                                    Observable<? extends T> t3,
                                                    Observable<? extends T> t4,
                                                    Observable<? extends T> t5,
                                                    Observable<? extends T> t6,
                                                    Observable<? extends T> t7,
                                                    Observable<? extends T> t8,
                                                    Observable<? extends T> t9)
        Flattens nine Observables into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        t8 - an Observable to be merged
        t9 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • merge

        public static final <T> Observable<T> merge(Observable<? extends T>[] sequences)
        Flattens an Array of Observables into one Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the merge method.

        Scheduler:
        merge does not operate by default on a particular Scheduler.
        Parameters:
        sequences - the Array of Observables
        Returns:
        an Observable that emits all of the items emitted by the Observables in the Array
        See Also:
        RxJava wiki: merge
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends Observable<? extends T>> source)
        Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        source - an Observable that emits Observables
        Returns:
        an Observable that emits all of the items emitted by the Observables emitted by the source Observable
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2)
        Flattens two Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from each of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if both merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the two source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3)
        Flattens three Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4)
        Flattens four Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4,
                                                              Observable<? extends T> t5)
        Flattens five Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4,
                                                              Observable<? extends T> t5,
                                                              Observable<? extends T> t6)
        Flattens six Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4,
                                                              Observable<? extends T> t5,
                                                              Observable<? extends T> t6,
                                                              Observable<? extends T> t7)
        Flattens seven Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4,
                                                              Observable<? extends T> t5,
                                                              Observable<? extends T> t6,
                                                              Observable<? extends T> t7,
                                                              Observable<? extends T> t8)
        Flattens eight Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        t8 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • mergeDelayError

        public static final <T> Observable<T> mergeDelayError(Observable<? extends T> t1,
                                                              Observable<? extends T> t2,
                                                              Observable<? extends T> t3,
                                                              Observable<? extends T> t4,
                                                              Observable<? extends T> t5,
                                                              Observable<? extends T> t6,
                                                              Observable<? extends T> t7,
                                                              Observable<? extends T> t8,
                                                              Observable<? extends T> t9)
        Flattens nine Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them.

        This behaves like merge(Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable) except that if any of the merged Observables notify of an error via onError, mergeDelayError will refrain from propagating that error notification until all of the merged Observables have finished emitting items.

        Even if multiple merged Observables send onError notifications, mergeDelayError will only invoke the onError method of its Observers once.

        Scheduler:
        mergeDelayError does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        t2 - an Observable to be merged
        t3 - an Observable to be merged
        t4 - an Observable to be merged
        t5 - an Observable to be merged
        t6 - an Observable to be merged
        t7 - an Observable to be merged
        t8 - an Observable to be merged
        t9 - an Observable to be merged
        Returns:
        an Observable that emits all of the items that are emitted by the source Observables
        See Also:
        RxJava wiki: mergeDelayError
      • nest

        public final Observable<Observable<T>> nest()
        Converts the source Observable<T> into an Observable<Observable<T>> that emits the source Observable as its single emission.

        Scheduler:
        nest does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a single item: the source Observable
      • never

        public static final <T> Observable<T> never()
        Returns an Observable that never sends any items or notifications to an Observer.

        This Observable is useful primarily for testing purposes.

        Scheduler:
        never does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of items (not) emitted by the Observable
        Returns:
        an Observable that never emits any items or sends any notifications to an Observer
        See Also:
        RxJava wiki: never
      • range

        public static final Observable<Integer> range(int start,
                                                      int count)
        Returns an Observable that emits a sequence of Integers within a specified range.

        Scheduler:
        range does not operate by default on a particular Scheduler.
        Parameters:
        start - the value of the first Integer in the sequence
        count - the number of sequential Integers to generate
        Returns:
        an Observable that emits a range of sequential Integers
        Throws:
        IllegalArgumentException - if count is less than zero, or if start + count − 1 exceeds Integer.MAX_VALUE
        See Also:
        RxJava wiki: range
      • range

        public static final Observable<Integer> range(int start,
                                                      int count,
                                                      Scheduler scheduler)
        Returns an Observable that emits a sequence of Integers within a specified range, on a specified Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        start - the value of the first Integer in the sequence
        count - the number of sequential Integers to generate
        scheduler - the Scheduler to run the generator loop on
        Returns:
        an Observable that emits a range of sequential Integers
        See Also:
        RxJava wiki: range
      • sequenceEqual

        public static final <T> Observable<Boolean> sequenceEqual(Observable<? extends T> first,
                                                                  Observable<? extends T> second)
        Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise.

        Scheduler:
        sequenceEqual does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of items emitted by each Observable
        Parameters:
        first - the first Observable to compare
        second - the second Observable to compare
        Returns:
        an Observable that emits a Boolean value that indicates whether the two sequences are the same
        See Also:
        RxJava wiki: sequenceEqual
      • sequenceEqual

        public static final <T> Observable<Boolean> sequenceEqual(Observable<? extends T> first,
                                                                  Observable<? extends T> second,
                                                                  Func2<? super T,? super T,Boolean> equality)
        Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise based on the results of a specified equality function.

        Scheduler:
        sequenceEqual does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the type of items emitted by each Observable
        Parameters:
        first - the first Observable to compare
        second - the second Observable to compare
        equality - a function used to compare items emitted by each Observable
        Returns:
        an Observable that emits a Boolean value that indicates whether the two Observable two sequences are the same according to the specified function
        See Also:
        RxJava wiki: sequenceEqual
      • switchOnNext

        public static final <T> Observable<T> switchOnNext(Observable<? extends Observable<? extends T>> sequenceOfSequences)
        Converts an Observable that emits Observables into an Observable that emits the items emitted by the most recently emitted of those Observables.

        switchOnNext subscribes to an Observable that emits Observables. Each time it observes one of these emitted Observables, the Observable returned by switchOnNext begins emitting the items emitted by that Observable. When a new Observable is emitted, switchOnNext stops emitting items from the earlier-emitted Observable and begins emitting items from the new one.

        Scheduler:
        switchOnNext does not operate by default on a particular Scheduler.
        Type Parameters:
        T - the item type
        Parameters:
        sequenceOfSequences - the source Observable that emits Observables
        Returns:
        an Observable that emits the items emitted by the Observable most recently emitted by the source Observable
        See Also:
        RxJava wiki: switchOnNext
      • timer

        public static final Observable<Long> timer(long initialDelay,
                                                   long period,
                                                   TimeUnit unit)
        Returns an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter.

        Backpressure Support:
        This operator does not support backpressure as it uses time. If the downstream needs a slower rate it should slow the timer or use something like onBackpressureDrop().
        Scheduler:
        timer operates by default on the computation Scheduler.
        Parameters:
        initialDelay - the initial delay time to wait before emitting the first value of 0L
        period - the period of time between emissions of the subsequent numbers
        unit - the time unit for both initialDelay and period
        Returns:
        an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter
        See Also:
        RxJava wiki: timer
      • timer

        public static final Observable<Long> timer(long initialDelay,
                                                   long period,
                                                   TimeUnit unit,
                                                   Scheduler scheduler)
        Returns an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter, on a specified Scheduler.

        Backpressure Support:
        This operator does not support backpressure as it uses time. If the downstream needs a slower rate it should slow the timer or use something like onBackpressureDrop().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        initialDelay - the initial delay time to wait before emitting the first value of 0L
        period - the period of time between emissions of the subsequent numbers
        unit - the time unit for both initialDelay and period
        scheduler - the Scheduler on which the waiting happens and items are emitted
        Returns:
        an Observable that emits a 0L after the initialDelay and ever increasing numbers after each period of time thereafter, while running on the given Scheduler
        See Also:
        RxJava wiki: timer
      • timer

        public static final Observable<Long> timer(long delay,
                                                   TimeUnit unit)
        Returns an Observable that emits one item after a specified delay, and then completes.

        Backpressure Support:
        This operator does not support backpressure as it uses time. If the downstream needs a slower rate it should slow the timer or use something like onBackpressureDrop().
        Scheduler:
        timer operates by default on the computation Scheduler.
        Parameters:
        delay - the initial delay before emitting a single 0L
        unit - time units to use for delay
        Returns:
        an Observable that emits one item after a specified delay, and then completes
        See Also:
        RxJava wiki: timer
      • timer

        public static final Observable<Long> timer(long delay,
                                                   TimeUnit unit,
                                                   Scheduler scheduler)
        Returns an Observable that emits one item after a specified delay, on a specified Scheduler, and then completes.

        Backpressure Support:
        This operator does not support backpressure as it uses time. If the downstream needs a slower rate it should slow the timer or use something like onBackpressureDrop().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        delay - the initial delay before emitting a single 0L
        unit - time units to use for delay
        scheduler - the Scheduler to use for scheduling the item
        Returns:
        an Observable that emits one item after a specified delay, on a specified Scheduler, and then completes
        See Also:
        RxJava wiki: timer
      • using

        public static final <T,Resource> Observable<T> using(Func0<Resource> resourceFactory,
                                                             Func1<? super Resource,? extends Observable<? extends T>> observableFactory,
                                                             Action1<? super Resource> disposeAction)
        Constructs an Observable that creates a dependent resource object.

        Scheduler:
        using does not operate by default on a particular Scheduler.
        Parameters:
        resourceFactory - the factory function to create a resource object that depends on the Observable
        observableFactory - the factory function to create an Observable
        disposeAction - the function that will dispose of the resource
        Returns:
        the Observable whose lifetime controls the lifetime of the dependent resource object
        See Also:
        RxJava wiki: using
      • zip

        public static final <R> Observable<R> zip(Iterable<? extends Observable<?>> ws,
                                                  FuncN<? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an Iterable of other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each of the source Observables; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invokations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        ws - an Iterable of source Observables
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <R> Observable<R> zip(Observable<? extends Observable<?>> ws,
                                                  FuncN<? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of n items emitted, in sequence, by the n Observables emitted by a specified Observable.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each of the Observables emitted by the source Observable; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invokations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        ws - an Observable of source Observables
        zipFunction - a function that, when applied to an item emitted by each of the Observables emitted by ws, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,R> Observable<R> zip(Observable<? extends T1> o1,
                                                        Observable<? extends T2> o2,
                                                        Func2<? super T1,? super T2,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by o1 and the first item emitted by o2; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by o1 and the second item emitted by o2; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,R> Observable<R> zip(Observable<? extends T1> o1,
                                                           Observable<? extends T2> o2,
                                                           Observable<? extends T3> o3,
                                                           Func3<? super T1,? super T2,? super T3,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of three items emitted, in sequence, by three other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by o1, the first item emitted by o2, and the first item emitted by o3; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by o1, the second item emitted by o2, and the second item emitted by o3; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,R> Observable<R> zip(Observable<? extends T1> o1,
                                                              Observable<? extends T2> o2,
                                                              Observable<? extends T3> o3,
                                                              Observable<? extends T4> o4,
                                                              Func4<? super T1,? super T2,? super T3,? super T4,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of four items emitted, in sequence, by four other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by o1, the first item emitted by o2, the first item emitted by o3, and the first item emitted by 04; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,T5,R> Observable<R> zip(Observable<? extends T1> o1,
                                                                 Observable<? extends T2> o2,
                                                                 Observable<? extends T3> o3,
                                                                 Observable<? extends T4> o4,
                                                                 Observable<? extends T5> o5,
                                                                 Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of five items emitted, in sequence, by five other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by o1, the first item emitted by o2, the first item emitted by o3, the first item emitted by o4, and the first item emitted by o5; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        o5 - a fifth source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,T5,T6,R> Observable<R> zip(Observable<? extends T1> o1,
                                                                    Observable<? extends T2> o2,
                                                                    Observable<? extends T3> o3,
                                                                    Observable<? extends T4> o4,
                                                                    Observable<? extends T5> o5,
                                                                    Observable<? extends T6> o6,
                                                                    Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of six items emitted, in sequence, by six other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        o5 - a fifth source Observable
        o6 - a sixth source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> zip(Observable<? extends T1> o1,
                                                                       Observable<? extends T2> o2,
                                                                       Observable<? extends T3> o3,
                                                                       Observable<? extends T4> o4,
                                                                       Observable<? extends T5> o5,
                                                                       Observable<? extends T6> o6,
                                                                       Observable<? extends T7> o7,
                                                                       Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of seven items emitted, in sequence, by seven other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        o5 - a fifth source Observable
        o6 - a sixth source Observable
        o7 - a seventh source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> zip(Observable<? extends T1> o1,
                                                                          Observable<? extends T2> o2,
                                                                          Observable<? extends T3> o3,
                                                                          Observable<? extends T4> o4,
                                                                          Observable<? extends T5> o5,
                                                                          Observable<? extends T6> o6,
                                                                          Observable<? extends T7> o7,
                                                                          Observable<? extends T8> o8,
                                                                          Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of eight items emitted, in sequence, by eight other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        o5 - a fifth source Observable
        o6 - a sixth source Observable
        o7 - a seventh source Observable
        o8 - an eighth source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • zip

        public static final <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> zip(Observable<? extends T1> o1,
                                                                             Observable<? extends T2> o2,
                                                                             Observable<? extends T3> o3,
                                                                             Observable<? extends T4> o4,
                                                                             Observable<? extends T5> o5,
                                                                             Observable<? extends T6> o6,
                                                                             Observable<? extends T7> o7,
                                                                             Observable<? extends T8> o8,
                                                                             Observable<? extends T9> o9,
                                                                             Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> zipFunction)
        Returns an Observable that emits the results of a specified combiner function applied to combinations of nine items emitted, in sequence, by nine other Observables.

        zip applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.

        The resulting Observable<R> returned from zip will invoke onNext as many times as the number of onNext invocations of the source Observable that emits the fewest items.

        Scheduler:
        zip does not operate by default on a particular Scheduler.
        Parameters:
        o1 - the first source Observable
        o2 - a second source Observable
        o3 - a third source Observable
        o4 - a fourth source Observable
        o5 - a fifth source Observable
        o6 - a sixth source Observable
        o7 - a seventh source Observable
        o8 - an eighth source Observable
        o9 - a ninth source Observable
        zipFunction - a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observable
        Returns:
        an Observable that emits the zipped results
        See Also:
        RxJava wiki: zip
      • all

        public final Observable<Boolean> all(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits a Boolean that indicates whether all of the items emitted by the source Observable satisfy a condition.

        Scheduler:
        all does not operate by default on a particular Scheduler.
        Parameters:
        predicate - a function that evaluates an item and returns a Boolean
        Returns:
        an Observable that emits true if all items emitted by the source Observable satisfy the predicate; otherwise, false
        See Also:
        RxJava wiki: all
      • ambWith

        public final Observable<T> ambWith(Observable<? extends T> t1)
        Mirrors the first Observable (current or provided) that emits an item.

        Scheduler:
        amb does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable competing to react first
        Returns:
        an Observable that emits the same sequence of items as whichever of the source Observables first emitted an item
        See Also:
        RxJava wiki: amb
      • asObservable

        public final Observable<T> asObservable()
        Portrays a object of an Observable subclass as a simple Observable object. This is useful, for instance, when you have an implementation of a subclass of Observable but you want to hide the properties and methods of this subclass from whomever you are passing the Observable to.
        Scheduler:
        asObservable does not operate by default on a particular Scheduler.
        Returns:
        an Observable that hides the identity of this Observable
      • buffer

        public final <TClosing> Observable<List<T>> buffer(Func0<? extends Observable<? extends TClosing>> bufferClosingSelector)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers. It emits the current buffer and replaces it with a new buffer whenever the Observable produced by the specified bufferClosingSelector emits an item.

        Backpressure Support:
        This operator does not support backpressure as it is instead controlled by the given Observables and buffers data. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Parameters:
        bufferClosingSelector - a Func0 that produces an Observable that governs the boundary between buffers. Whenever this Observable emits an item, buffer emits the current buffer and begins to fill a new one
        Returns:
        an Observable that emits a connected, non-overlapping buffer of items from the source Observable each time the Observable created with the bufferClosingSelector argument emits an item
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(int count)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers, each containing count items. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Parameters:
        count - the maximum number of items in each buffer before it should be emitted
        Returns:
        an Observable that emits connected, non-overlapping buffers, each containing at most count items from the source Observable
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(int count,
                                                int skip)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits buffers every skip items, each containing count items. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Parameters:
        count - the maximum size of each buffer before it should be emitted
        skip - how many items emitted by the source Observable should be skipped before starting a new buffer. Note that when skip and count are equal, this is the same operation as buffer(int).
        Returns:
        an Observable that emits buffers for every skip item from the source Observable and containing at most count items
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                long timeshift,
                                                TimeUnit unit)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable starts a new buffer periodically, as determined by the timeshift argument. It emits each buffer after a fixed timespan, specified by the timespan argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted
        timeshift - the period of time after which a new buffer will be created
        unit - the unit of time that applies to the timespan and timeshift arguments
        Returns:
        an Observable that emits new buffers of items emitted by the source Observable periodically after a fixed timespan has elapsed
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                long timeshift,
                                                TimeUnit unit,
                                                Scheduler scheduler)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable starts a new buffer periodically, as determined by the timeshift argument, and on the specified scheduler. It emits each buffer after a fixed timespan, specified by the timespan argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted
        timeshift - the period of time after which a new buffer will be created
        unit - the unit of time that applies to the timespan and timeshift arguments
        scheduler - the Scheduler to use when determining the end and start of a buffer
        Returns:
        an Observable that emits new buffers of items emitted by the source Observable periodically after a fixed timespan has elapsed
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                TimeUnit unit)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers, each of a fixed duration specified by the timespan argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted and replaced with a new buffer
        unit - the unit of time that applies to the timespan argument
        Returns:
        an Observable that emits connected, non-overlapping buffers of items emitted by the source Observable within a fixed duration
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                TimeUnit unit,
                                                int count)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers, each of a fixed duration specified by the timespan argument or a maximum size specified by the count argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted and replaced with a new buffer
        unit - the unit of time which applies to the timespan argument
        count - the maximum size of each buffer before it is emitted
        Returns:
        an Observable that emits connected, non-overlapping buffers of items emitted by the source Observable, after a fixed duration or when the buffer reaches maximum capacity (whichever occurs first)
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                TimeUnit unit,
                                                int count,
                                                Scheduler scheduler)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers, each of a fixed duration specified by the timespan argument as measured on the specified scheduler, or a maximum size specified by the count argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted and replaced with a new buffer
        unit - the unit of time which applies to the timespan argument
        count - the maximum size of each buffer before it is emitted
        scheduler - the Scheduler to use when determining the end and start of a buffer
        Returns:
        an Observable that emits connected, non-overlapping buffers of items emitted by the source Observable after a fixed duration or when the buffer reaches maximum capacity (whichever occurs first)
        See Also:
        RxJava wiki: buffer
      • buffer

        public final Observable<List<T>> buffer(long timespan,
                                                TimeUnit unit,
                                                Scheduler scheduler)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping buffers, each of a fixed duration specified by the timespan argument and on the specified scheduler. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each buffer collects items before it is emitted and replaced with a new buffer
        unit - the unit of time which applies to the timespan argument
        scheduler - the Scheduler to use when determining the end and start of a buffer
        Returns:
        an Observable that emits connected, non-overlapping buffers of items emitted by the source Observable within a fixed duration
        See Also:
        RxJava wiki: buffer
      • buffer

        public final <TOpening,TClosing> Observable<List<T>> buffer(Observable<? extends TOpening> bufferOpenings,
                                                                    Func1<? super TOpening,? extends Observable<? extends TClosing>> bufferClosingSelector)
        Returns an Observable that emits buffers of items it collects from the source Observable. The resulting Observable emits buffers that it creates when the specified bufferOpenings Observable emits an item, and closes when the Observable returned from bufferClosingSelector emits an item.

        Backpressure Support:
        This operator does not support backpressure as it is instead controlled by the given Observables and buffers data. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Parameters:
        bufferOpenings - the Observable that, when it emits an item, causes a new buffer to be created
        bufferClosingSelector - the Func1 that is used to produce an Observable for every buffer created. When this Observable emits an item, the associated buffer is emitted.
        Returns:
        an Observable that emits buffers, containing items from the source Observable, that are created and closed when the specified Observables emit items
        See Also:
        RxJava wiki: buffer
      • buffer

        public final <B> Observable<List<T>> buffer(Observable<B> boundary)
        Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item.

        Completion of either the source or the boundary Observable causes the returned Observable to emit the latest buffer and complete.

        Backpressure Support:
        This operator does not support backpressure as it is instead controlled by the Observable boundary and buffers data. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Type Parameters:
        B - the boundary value type (ignored)
        Parameters:
        boundary - the boundary Observable
        Returns:
        an Observable that emits buffered items from the source Observable when the boundary Observable emits an item
        See Also:
        buffer(rx.Observable, int), RxJava wiki: buffer
      • buffer

        public final <B> Observable<List<T>> buffer(Observable<B> boundary,
                                                    int initialCapacity)
        Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item.

        Completion of either the source or the boundary Observable causes the returned Observable to emit the latest buffer and complete.

        Backpressure Support:
        This operator does not support backpressure as it is instead controlled by the Observable boundary and buffers data. It requests Long.MAX_VALUE upstream and does not obey downstream requests.
        Scheduler:
        This version of buffer does not operate by default on a particular Scheduler.
        Type Parameters:
        B - the boundary value type (ignored)
        Parameters:
        boundary - the boundary Observable
        initialCapacity - the initial capacity of each buffer chunk
        Returns:
        an Observable that emits buffered items from the source Observable when the boundary Observable emits an item
        See Also:
        RxJava wiki: buffer, buffer(rx.Observable, int)
      • cache

        public final Observable<T> cache()
        Caches the emissions from the source Observable and replays them in order to any subsequent Subscribers. This method has similar behavior to replay() except that this auto-subscribes to the source Observable rather than returning a ConnectableObservable for which you must call connect to activate the subscription.

        This is useful when you want an Observable to cache responses and you can't control the subscribe/unsubscribe behavior of all the Subscribers.

        When you call cache, it does not yet subscribe to the source Observable and so does not yet begin cacheing items. This only happens when the first Subscriber calls the resulting Observable's subscribe method.

        Note: You sacrifice the ability to unsubscribe from the origin when you use the cache Observer so be careful not to use this Observer on Observables that emit an infinite or very large number of items that will use up memory.

        Backpressure Support:
        This operator does not support upstream backpressure as it is purposefully requesting and caching everything emitted.
        Scheduler:
        cache does not operate by default on a particular Scheduler.
        Returns:
        an Observable that, when first subscribed to, caches all of its items and notifications for the benefit of subsequent subscribers
        See Also:
        RxJava wiki: cache
      • cache

        public final Observable<T> cache(int capacity)
        Caches emissions from the source Observable and replays them in order to any subsequent Subscribers. This method has similar behavior to replay() except that this auto-subscribes to the source Observable rather than returning a ConnectableObservable for which you must call connect to activate the subscription.

        This is useful when you want an Observable to cache responses and you can't control the subscribe/unsubscribe behavior of all the Subscribers.

        When you call cache, it does not yet subscribe to the source Observable and so does not yet begin cacheing items. This only happens when the first Subscriber calls the resulting Observable's subscribe method.

        Note: You sacrifice the ability to unsubscribe from the origin when you use the cache Observer so be careful not to use this Observer on Observables that emit an infinite or very large number of items that will use up memory.

        Backpressure Support:
        This operator does not support upstream backpressure as it is purposefully requesting and caching everything emitted.
        Scheduler:
        cache does not operate by default on a particular Scheduler.
        Parameters:
        capacity - hint for number of items to cache (for optimizing underlying data structure)
        Returns:
        an Observable that, when first subscribed to, caches all of its items and notifications for the benefit of subsequent subscribers
        See Also:
        RxJava wiki: cache
      • cast

        public final <R> Observable<R> cast(Class<R> klass)
        Returns an Observable that emits the items emitted by the source Observable, converted to the specified type.

        Scheduler:
        cast does not operate by default on a particular Scheduler.
        Parameters:
        klass - the target class type that cast will cast the items emitted by the source Observable into before emitting them from the resulting Observable
        Returns:
        an Observable that emits each item from the source Observable after converting it to the specified type
        See Also:
        RxJava wiki: cast
      • collect

        public final <R> Observable<R> collect(Func0<R> stateFactory,
                                               Action2<R,? super T> collector)
        Collects items emitted by the source Observable into a single mutable data structure and returns an Observable that emits this structure.

        This is a simplified version of reduce that does not need to return the state on each pass.

        Backpressure Support:
        This operator does not support backpressure because by intent it will receive all values and reduce them to a single onNext.
        Scheduler:
        collect does not operate by default on a particular Scheduler.
        Parameters:
        stateFactory - the mutable data structure that will collect the items
        collector - a function that accepts the state and an emitted item, and modifies state accordingly
        Returns:
        an Observable that emits the result of collecting the values emitted by the source Observable into a single mutable data structure
        See Also:
        RxJava wiki: collect
      • concatMap

        public final <R> Observable<R> concatMap(Func1<? super T,? extends Observable<? extends R>> func)
        Returns a new Observable that emits items resulting from applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then emitting the items that result from concatinating those resulting Observables.

        Scheduler:
        concatMap does not operate by default on a particular Scheduler.
        Parameters:
        func - a function that, when applied to an item emitted by the source Observable, returns an Observable
        Returns:
        an Observable that emits the result of applying the transformation function to each item emitted by the source Observable and concatinating the Observables obtained from this transformation
        See Also:
        RxJava wiki: concatMap
      • concatWith

        public final Observable<T> concatWith(Observable<? extends T> t1)
        Returns an Observable that emits the items emitted from the current Observable, then the next, one after the other, without interleaving them.

        Scheduler:
        concat does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be concatenated after the current
        Returns:
        an Observable that emits items emitted by the two source Observables, one after the other, without interleaving them
        See Also:
        RxJava wiki: concat
      • contains

        public final Observable<Boolean> contains(Object element)
        Returns an Observable that emits a Boolean that indicates whether the source Observable emitted a specified item.

        Scheduler:
        contains does not operate by default on a particular Scheduler.
        Parameters:
        element - the item to search for in the emissions from the source Observable
        Returns:
        an Observable that emits true if the specified item is emitted by the source Observable, or false if the source Observable completes without emitting that item
        See Also:
        RxJava wiki: contains
      • count

        public final Observable<Integer> count()
        Returns an Observable that emits the count of the total number of items emitted by the source Observable.

        Backpressure Support:
        This operator does not support backpressure because by intent it will receive all values and reduce them to a single onNext.
        Scheduler:
        count does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a single item: the number of elements emitted by the source Observable
        See Also:
        RxJava wiki: count, countLong()
      • countLong

        public final Observable<Long> countLong()
        Returns an Observable that counts the total number of items emitted by the source Observable and emits this count as a 64-bit Long.

        Backpressure Support:
        This operator does not support backpressure because by intent it will receive all values and reduce them to a single onNext.
        Scheduler:
        countLong does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a single item: the number of items emitted by the source Observable as a 64-bit Long item
        See Also:
        RxJava wiki: countLong, count()
      • debounce

        public final <U> Observable<T> debounce(Func1<? super T,? extends Observable<U>> debounceSelector)
        Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by another item within a computed debounce duration.

        Backpressure Support:
        This operator does not support backpressure as it uses the debounceSelector to mark boundaries.
        Scheduler:
        This version of debounce does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the debounce value type (ignored)
        Parameters:
        debounceSelector - function to retrieve a sequence that indicates the throttle duration for each item
        Returns:
        an Observable that omits items emitted by the source Observable that are followed by another item within a computed debounce duration
        See Also:
        RxJava wiki: debounce, RxJava wiki: Backpressure
      • debounce

        public final Observable<T> debounce(long timeout,
                                            TimeUnit unit,
                                            Scheduler scheduler)
        Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by newer items before a timeout value expires on a specified Scheduler. The timer resets on each emission.

        Note: If items keep being emitted by the source Observable faster than the timeout then no items will be emitted by the resulting Observable.

        Information on debounce vs throttle:

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timeout - the time each item has to be "the most recent" of those emitted by the source Observable to ensure that it's not dropped
        unit - the unit of time for the specified timeout
        scheduler - the Scheduler to use internally to manage the timers that handle the timeout for each item
        Returns:
        an Observable that filters out items from the source Observable that are too quickly followed by newer items
        See Also:
        RxJava wiki: debounce, RxJava wiki: Backpressure, throttleWithTimeout(long, TimeUnit, Scheduler)
      • defaultIfEmpty

        public final Observable<T> defaultIfEmpty(T defaultValue)
        Returns an Observable that emits the items emitted by the source Observable or a specified default item if the source Observable is empty.

        Scheduler:
        defaultIfEmpty does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - the item to emit if the source Observable emits no items
        Returns:
        an Observable that emits either the specified default item if the source Observable emits no items, or the items emitted by the source Observable
        See Also:
        RxJava wiki: defaultIfEmpty
      • delay

        public final <U,V> Observable<T> delay(Func0<? extends Observable<U>> subscriptionDelay,
                                               Func1<? super T,? extends Observable<V>> itemDelay)
        Returns an Observable that delays the subscription to and emissions from the souce Observable via another Observable on a per-item basis.

        Note: the resulting Observable will immediately propagate any onError notification from the source Observable.

        Scheduler:
        This version of delay does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the subscription delay value type (ignored)
        V - the item delay value type (ignored)
        Parameters:
        subscriptionDelay - a function that returns an Observable that triggers the subscription to the source Observable once it emits any item
        itemDelay - a function that returns an Observable for each item emitted by the source Observable, which is then used to delay the emission of that item by the resulting Observable until the Observable returned from itemDelay emits an item
        Returns:
        an Observable that delays the subscription and emissions of the source Observable via another Observable on a per-item basis
        See Also:
        RxJava wiki: delay
      • delay

        public final <U> Observable<T> delay(Func1<? super T,? extends Observable<U>> itemDelay)
        Returns an Observable that delays the emissions of the source Observable via another Observable on a per-item basis.

        Note: the resulting Observable will immediately propagate any onError notification from the source Observable.

        Scheduler:
        This version of delay does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the item delay value type (ignored)
        Parameters:
        itemDelay - a function that returns an Observable for each item emitted by the source Observable, which is then used to delay the emission of that item by the resulting Observable until the Observable returned from itemDelay emits an item
        Returns:
        an Observable that delays the emissions of the source Observable via another Observable on a per-item basis
        See Also:
        RxJava wiki: delay
      • delay

        public final Observable<T> delay(long delay,
                                         TimeUnit unit)
        Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay. Error notifications from the source Observable are not delayed.

        Scheduler:
        This version of delay operates by default on the compuation Scheduler.
        Parameters:
        delay - the delay to shift the source by
        unit - the TimeUnit in which period is defined
        Returns:
        the source Observable shifted in time by the specified delay
        See Also:
        RxJava wiki: delay
      • delay

        public final Observable<T> delay(long delay,
                                         TimeUnit unit,
                                         Scheduler scheduler)
        Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay. Error notifications from the source Observable are not delayed.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        delay - the delay to shift the source by
        unit - the time unit of delay
        scheduler - the Scheduler to use for delaying
        Returns:
        the source Observable shifted in time by the specified delay
        See Also:
        RxJava wiki: delay
      • delaySubscription

        public final Observable<T> delaySubscription(long delay,
                                                     TimeUnit unit)
        Returns an Observable that delays the subscription to the source Observable by a given amount of time.

        Scheduler:
        This version of delay operates by default on the compuation Scheduler.
        Parameters:
        delay - the time to delay the subscription
        unit - the time unit of delay
        Returns:
        an Observable that delays the subscription to the source Observable by the given amount
        See Also:
        RxJava wiki: delaySubscription
      • delaySubscription

        public final Observable<T> delaySubscription(long delay,
                                                     TimeUnit unit,
                                                     Scheduler scheduler)
        Returns an Observable that delays the subscription to the source Observable by a given amount of time, both waiting and subscribing on a given Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        delay - the time to delay the subscription
        unit - the time unit of delay
        scheduler - the Scheduler on which the waiting and subscription will happen
        Returns:
        an Observable that delays the subscription to the source Observable by a given amount, waiting and subscribing on the given Scheduler
        See Also:
        RxJava wiki: delaySubscription
      • delaySubscription

        public final <U> Observable<T> delaySubscription(Func0<? extends Observable<U>> subscriptionDelay)
        Returns an Observable that delays the subscription to the source Observable until a second Observable emits an item.

        Scheduler:
        This version of delay operates by default on the compuation Scheduler.
        Parameters:
        subscriptionDelay - a function that returns an Observable that triggers the subscription to the source Observable once it emits any item
        Returns:
        an Observable that delays the subscription to the source Observable until the Observable returned by subscriptionDelay emits an item
        See Also:
        RxJava wiki: delaySubscription
      • dematerialize

        public final <T2> Observable<T2> dematerialize()
        Returns an Observable that reverses the effect of materialize by transforming the Notification objects emitted by the source Observable into the items or notifications they represent.

        Scheduler:
        dematerialize does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits the items and notifications embedded in the Notification objects emitted by the source Observable
        Throws:
        OnErrorNotImplementedException - if the source Observable is not of type Observable<Notification<T>>
        See Also:
        RxJava wiki: dematerialize
      • distinct

        public final Observable<T> distinct()
        Returns an Observable that emits all items emitted by the source Observable that are distinct.

        Scheduler:
        distinct does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits only those items emitted by the source Observable that are distinct from each other
        See Also:
        RxJava wiki: distinct
      • distinct

        public final <U> Observable<T> distinct(Func1<? super T,? extends U> keySelector)
        Returns an Observable that emits all items emitted by the source Observable that are distinct according to a key selector function.

        Scheduler:
        distinct does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - a function that projects an emitted item to a key value that is used to decide whether an item is distinct from another one or not
        Returns:
        an Observable that emits those items emitted by the source Observable that have distinct keys
        See Also:
        RxJava wiki: distinct
      • distinctUntilChanged

        public final Observable<T> distinctUntilChanged()
        Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors.

        Scheduler:
        distinctUntilChanged does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits those items from the source Observable that are distinct from their immediate predecessors
        See Also:
        RxJava wiki: distinctUntilChanged
      • distinctUntilChanged

        public final <U> Observable<T> distinctUntilChanged(Func1<? super T,? extends U> keySelector)
        Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors, according to a key selector function.

        Scheduler:
        distinctUntilChanged does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - a function that projects an emitted item to a key value that is used to decide whether an item is distinct from another one or not
        Returns:
        an Observable that emits those items from the source Observable whose keys are distinct from those of their immediate predecessors
        See Also:
        RxJava wiki: distinctUntilChanged
      • doOnCompleted

        public final Observable<T> doOnCompleted(Action0 onCompleted)
        Modifies the source Observable so that it invokes an action when it calls onCompleted.

        Scheduler:
        doOnCompleted does not operate by default on a particular Scheduler.
        Parameters:
        onCompleted - the action to invoke when the source Observable calls onCompleted
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnCompleted
      • doOnEach

        public final Observable<T> doOnEach(Action1<Notification<? super T>> onNotification)
        Modifies the source Observable so that it invokes an action for each item it emits.

        Scheduler:
        doOnEach does not operate by default on a particular Scheduler.
        Parameters:
        onNotification - the action to invoke for each item emitted by the source Observable
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnEach
      • doOnEach

        public final Observable<T> doOnEach(Observer<? super T> observer)
        Modifies the source Observable so that it notifies an Observer for each item it emits.

        Scheduler:
        doOnEach does not operate by default on a particular Scheduler.
        Parameters:
        observer - the action to invoke for each item emitted by the source Observable
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnEach
      • doOnError

        public final Observable<T> doOnError(Action1<Throwable> onError)
        Modifies the source Observable so that it invokes an action if it calls onError.

        Scheduler:
        doOnError does not operate by default on a particular Scheduler.
        Parameters:
        onError - the action to invoke if the source Observable calls onError
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnError
      • doOnNext

        public final Observable<T> doOnNext(Action1<? super T> onNext)
        Modifies the source Observable so that it invokes an action when it calls onNext.

        Scheduler:
        doOnNext does not operate by default on a particular Scheduler.
        Parameters:
        onNext - the action to invoke when the source Observable calls onNext
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnEach
      • doOnSubscribe

        public final Observable<T> doOnSubscribe(Action0 subscribe)
        Modifies the source Observable so that it invokes the given action when it is subscribed from its subscribers. Each subscription will result in an invocation of the given action except when the source Observable is reference counted, in which case the source Observable will invoke the given action for the first subscription.

        Scheduler:
        doOnSubscribe does not operate by default on a particular Scheduler.
        Parameters:
        subscribe - the action that gets called when an observer subscribes to this Observable
        Returns:
        the source Observable modified so as to call this Action when appropriate
        See Also:
        RxJava wiki: doOnSubscribe
      • doOnTerminate

        public final Observable<T> doOnTerminate(Action0 onTerminate)
        Modifies the source Observable so that it invokes an action when it calls onCompleted or onError.

        This differs from finallyDo in that this happens before the onCompleted or onError notification.

        Scheduler:
        doOnTerminate does not operate by default on a particular Scheduler.
        Parameters:
        onTerminate - the action to invoke when the source Observable calls onCompleted or onError
        Returns:
        the source Observable with the side-effecting behavior applied
        See Also:
        RxJava wiki: doOnTerminate, finallyDo(Action0)
      • doOnUnsubscribe

        public final Observable<T> doOnUnsubscribe(Action0 unsubscribe)
        Modifies the source Observable so that it invokes the given action when it is unsubscribed from its subscribers. Each un-subscription will result in an invocation of the given action except when the source Observable is reference counted, in which case the source Observable will invoke the given action for the very last un-subscription.

        Scheduler:
        doOnUnsubscribe does not operate by default on a particular Scheduler.
        Parameters:
        unsubscribe - the action that gets called when this Observable is unsubscribed
        Returns:
        the source Observable modified so as to call this Action when appropriate
        See Also:
        RxJava wiki: doOnUnsubscribe
      • elementAt

        public final Observable<T> elementAt(int index)
        Returns an Observable that emits the single item at a specified index in a sequence of emissions from a source Observbable.

        Scheduler:
        elementAt does not operate by default on a particular Scheduler.
        Parameters:
        index - the zero-based index of the item to retrieve
        Returns:
        an Observable that emits a single item: the item at the specified position in the sequence of those emitted by the source Observable
        Throws:
        IndexOutOfBoundsException - if index is greater than or equal to the number of items emitted by the source Observable, or if index is less than 0
        See Also:
        RxJava wiki: elementAt
      • elementAtOrDefault

        public final Observable<T> elementAtOrDefault(int index,
                                                      T defaultValue)
        Returns an Observable that emits the item found at a specified index in a sequence of emissions from a source Observable, or a default item if that index is out of range.

        Scheduler:
        elementAtOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        index - the zero-based index of the item to retrieve
        defaultValue - the default item
        Returns:
        an Observable that emits the item at the specified position in the sequence emitted by the source Observable, or the default item if that index is outside the bounds of the source sequence
        Throws:
        IndexOutOfBoundsException - if index is less than 0
        See Also:
        RxJava wiki: elementAtOrDefault
      • exists

        public final Observable<Boolean> exists(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false. Note: this always emits false if the source Observable is empty.

        In Rx.Net this is the any Observer but we renamed it in RxJava to better match Java naming idioms.

        Scheduler:
        exists does not operate by default on a particular Scheduler.
        Parameters:
        predicate - the condition to test items emitted by the source Observable
        Returns:
        an Observable that emits a Boolean that indicates whether any item emitted by the source Observable satisfies the predicate
        See Also:
        RxJava wiki: exists
      • filter

        public final Observable<T> filter(Func1<? super T,Boolean> predicate)
        Filters items emitted by an Observable by only emitting those that satisfy a specified predicate.

        Scheduler:
        filter does not operate by default on a particular Scheduler.
        Parameters:
        predicate - a function that evaluates each item emitted by the source Observable, returning true if it passes the filter
        Returns:
        an Observable that emits only those items emitted by the source Observable that the filter evaluates as true
        See Also:
        RxJava wiki: filter
      • first

        public final Observable<T> first()
        Returns an Observable that emits only the very first item emitted by the source Observable, or notifies of an NoSuchElementException if the source Observable is empty.

        Scheduler:
        first does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits only the very first item emitted by the source Observable, or raises an NoSuchElementException if the source Observable is empty
        See Also:
        RxJava wiki: first, "MSDN: Observable.firstAsync"
      • first

        public final Observable<T> first(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or notifies of an NoSuchElementException if no such items are emitted.

        Scheduler:
        first does not operate by default on a particular Scheduler.
        Parameters:
        predicate - the condition that an item emitted by the source Observable has to satisfy
        Returns:
        an Observable that emits only the very first item emitted by the source Observable that satisfies the predicate, or raises an NoSuchElementException if no such items are emitted
        See Also:
        RxJava wiki: takeFirst, "MSDN: Observable.firstAsync"
      • firstOrDefault

        public final Observable<T> firstOrDefault(T defaultValue)
        Returns an Observable that emits only the very first item emitted by the source Observable, or a default item if the source Observable completes without emitting anything.

        Scheduler:
        firstOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - the default item to emit if the source Observable doesn't emit anything
        Returns:
        an Observable that emits only the very first item from the source, or a default item if the source Observable completes without emitting any items
        See Also:
        RxJava wiki: firstOrDefault, "MSDN: Observable.firstOrDefaultAsync"
      • firstOrDefault

        public final Observable<T> firstOrDefault(T defaultValue,
                                                  Func1<? super T,Boolean> predicate)
        Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or a default item if the source Observable emits no such items.

        Scheduler:
        firstOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        predicate - the condition any item emitted by the source Observable has to satisfy
        defaultValue - the default item to emit if the source Observable doesn't emit anything that satisfies the predicate
        Returns:
        an Observable that emits only the very first item emitted by the source Observable that satisfies the predicate, or a default item if the source Observable emits no such items
        See Also:
        RxJava wiki: firstOrDefault, "MSDN: Observable.firstOrDefaultAsync"
      • flatMap

        public final <R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends R>> func)
        Returns an Observable that emits items based on applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then merging those resulting Observables and emitting the results of this merger.

        Scheduler:
        flatMap does not operate by default on a particular Scheduler.
        Parameters:
        func - a function that, when applied to an item emitted by the source Observable, returns an Observable
        Returns:
        an Observable that emits the result of applying the transformation function to each item emitted by the source Observable and merging the results of the Observables obtained from this transformation
        See Also:
        RxJava wiki: flatMap
      • flatMap

        public final <R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends R>> onNext,
                                               Func1<? super Throwable,? extends Observable<? extends R>> onError,
                                               Func0<? extends Observable<? extends R>> onCompleted)
        Returns an Observable that applies a function to each item emitted or notification raised by the source Observable and then flattens the Observables returned from these functions and emits the resulting items.

        Scheduler:
        flatMap does not operate by default on a particular Scheduler.
        Type Parameters:
        R - the result type
        Parameters:
        onNext - a function that returns an Observable to merge for each item emitted by the source Observable
        onError - a function that returns an Observable to merge for an onError notification from the source Observable
        onCompleted - a function that returns an Observable to merge for an onCompleted notification from the source Observable
        Returns:
        an Observable that emits the results of merging the Observables returned from applying the specified functions to the emissions and notifications of the source Observable
        See Also:
        RxJava wiki: flatMap
      • flatMap

        public final <U,R> Observable<R> flatMap(Func1<? super T,? extends Observable<? extends U>> collectionSelector,
                                                 Func2<? super T,? super U,? extends R> resultSelector)
        Returns an Observable that emits the results of a specified function to the pair of values emitted by the source Observable and a specified collection Observable.

        Scheduler:
        flatMap does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the type of items emitted by the collection Observable
        R - the type of items emitted by the resulting Observable
        Parameters:
        collectionSelector - a function that returns an Observable for each item emitted by the source Observable
        resultSelector - a function that combines one item emitted by each of the source and collection Observables and returns an item to be emitted by the resulting Observable
        Returns:
        an Observable that emits the results of applying a function to a pair of values emitted by the source Observable and the collection Observable
        See Also:
        RxJava wiki: flatMap
      • flatMapIterable

        public final <R> Observable<R> flatMapIterable(Func1<? super T,? extends Iterable<? extends R>> collectionSelector)
        Returns an Observable that merges each item emitted by the source Observable with the values in an Iterable corresponding to that item that is generated by a selector.

        Scheduler:
        flatMapIterable does not operate by default on a particular Scheduler.
        Type Parameters:
        R - the type of item emitted by the resulting Observable
        Parameters:
        collectionSelector - a function that returns an Iterable sequence of values for when given an item emitted by the source Observable
        Returns:
        an Observable that emits the results of merging the items emitted by the source Observable with the values in the Iterables corresponding to those items, as generated by collectionSelector
        See Also:
        RxJava wiki: flatMapIterable
      • flatMapIterable

        public final <U,R> Observable<R> flatMapIterable(Func1<? super T,? extends Iterable<? extends U>> collectionSelector,
                                                         Func2<? super T,? super U,? extends R> resultSelector)
        Returns an Observable that emits the results of applying a function to the pair of values from the source Observable and an Iterable corresponding to that item that is generated by a selector.

        Scheduler:
        flatMapIterable does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the collection element type
        R - the type of item emited by the resulting Observable
        Parameters:
        collectionSelector - a function that returns an Iterable sequence of values for each item emitted by the source Observable
        resultSelector - a function that returns an item based on the item emitted by the source Observable and the Iterable returned for that item by the collectionSelector
        Returns:
        an Observable that emits the items returned by resultSelector for each item in the source Observable
        See Also:
        RxJava wiki: flatMapIterable
      • groupBy

        public final <K,R> Observable<GroupedObservable<K,R>> groupBy(Func1<? super T,? extends K> keySelector,
                                                                      Func1<? super T,? extends R> elementSelector)
        Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items as GroupedObservables, one GroupedObservable per group.

        Note: A GroupedObservable will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those GroupedObservables that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator like take(int)(0) to them.

        Scheduler:
        groupBy does not operate by default on a particular Scheduler.
        Type Parameters:
        K - the key type
        R - the element type
        Parameters:
        keySelector - a function that extracts the key for each item
        elementSelector - a function that extracts the return element for each item
        Returns:
        an Observable that emits GroupedObservables, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key value
        See Also:
        RxJava wiki: groupBy
      • groupBy

        public final <K> Observable<GroupedObservable<K,T>> groupBy(Func1<? super T,? extends K> keySelector)
        Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items as GroupedObservables, one GroupedObservable per group.

        Note: A GroupedObservable will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore those GroupedObservables that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator like take(int)(0) to them.

        Scheduler:
        groupBy does not operate by default on a particular Scheduler.
        Type Parameters:
        K - the key type
        Parameters:
        keySelector - a function that extracts the key for each item
        Returns:
        an Observable that emits GroupedObservables, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key value
        See Also:
        RxJava wiki: groupBy
      • groupJoin

        public final <T2,D1,D2,R> Observable<R> groupJoin(Observable<T2> right,
                                                          Func1<? super T,? extends Observable<D1>> leftDuration,
                                                          Func1<? super T2,? extends Observable<D2>> rightDuration,
                                                          Func2<? super T,? super Observable<T2>,? extends R> resultSelector)
        Returns an Observable that correlates two Observables when they overlap in time and groups the results.

        Scheduler:
        groupJoin does not operate by default on a particular Scheduler.
        Parameters:
        right - the other Observable to correlate items from the source Observable with
        leftDuration - a function that returns an Observable whose emissions indicate the duration of the values of the source Observable
        rightDuration - a function that returns an Observable whose emissions indicate the duration of the values of the right Observable
        resultSelector - a function that takes an item emitted by each Observable and returns the value to be emitted by the resulting Observable
        Returns:
        an Observable that emits items based on combining those items emitted by the source Observables whose durations overlap
        See Also:
        RxJava Wiiki: groupJoin
      • ignoreElements

        public final Observable<T> ignoreElements()
        Ignores all items emitted by the source Observable and only calls onCompleted or onError.

        Scheduler:
        ignoreElements does not operate by default on a particular Scheduler.
        Returns:
        an empty Observable that only calls onCompleted or onError, based on which one is called by the source Observable
        See Also:
        RxJava wiki: ignoreElements
      • isEmpty

        public final Observable<Boolean> isEmpty()
        Returns an Observable that emits true if the source Observable is empty, otherwise false.

        In Rx.Net this is negated as the any Observer but we renamed this in RxJava to better match Java naming idioms.

        Scheduler:
        isEmpty does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a Boolean
        See Also:
        RxJava wiki: isEmpty
      • join

        public final <TRight,TLeftDuration,TRightDuration,R> Observable<R> join(Observable<TRight> right,
                                                                                Func1<T,Observable<TLeftDuration>> leftDurationSelector,
                                                                                Func1<TRight,Observable<TRightDuration>> rightDurationSelector,
                                                                                Func2<T,TRight,R> resultSelector)
        Correlates the items emitted by two Observables based on overlapping durations.

        Scheduler:
        join does not operate by default on a particular Scheduler.
        Parameters:
        right - the second Observable to join items from
        leftDurationSelector - a function to select a duration for each item emitted by the source Observable, used to determine overlap
        rightDurationSelector - a function to select a duration for each item emitted by the right Observable, used to determine overlap
        resultSelector - a function that computes an item to be emitted by the resulting Observable for any two overlapping items emitted by the two Observables
        Returns:
        an Observable that emits items correlating to items emitted by the source Observables that have overlapping durations
        See Also:
        RxJava wiki: join
      • last

        public final Observable<T> last()
        Returns an Observable that emits the last item emitted by the source Observable or notifies observers of a NoSuchElementException if the source Observable is empty.

        Scheduler:
        last does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits the last item from the source Observable or notifies observers of an error
        See Also:
        RxJava wiki: last, "MSDN: Observable.lastAsync"
      • last

        public final Observable<T> last(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits only the last item emitted by the source Observable that satisfies a given condition, or notifies of a NoSuchElementException if no such items are emitted.

        Scheduler:
        last does not operate by default on a particular Scheduler.
        Parameters:
        predicate - the condition any source emitted item has to satisfy
        Returns:
        an Observable that emits only the last item satisfying the given condition from the source, or an NoSuchElementException if no such items are emitted
        Throws:
        IllegalArgumentException - if no items that match the predicate are emitted by the source Observable
        See Also:
        RxJava wiki: last, "MSDN: Observable.lastAsync"
      • lastOrDefault

        public final Observable<T> lastOrDefault(T defaultValue)
        Returns an Observable that emits only the last item emitted by the source Observable, or a default item if the source Observable completes without emitting any items.

        Scheduler:
        lastOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - the default item to emit if the source Observable is empty
        Returns:
        an Observable that emits only the last item emitted by the source Observable, or a default item if the source Observable is empty
        See Also:
        RxJava wiki: lastOrDefault, "MSDN: Observable.lastOrDefaultAsync"
      • lastOrDefault

        public final Observable<T> lastOrDefault(T defaultValue,
                                                 Func1<? super T,Boolean> predicate)
        Returns an Observable that emits only the last item emitted by the source Observable that satisfies a specified condition, or a default item if no such item is emitted by the source Observable.

        Scheduler:
        lastOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - the default item to emit if the source Observable doesn't emit anything that satisfies the specified predicate
        predicate - the condition any item emitted by the source Observable has to satisfy
        Returns:
        an Observable that emits only the last item emitted by the source Observable that satisfies the given condition, or a default item if no such item is emitted by the source Observable
        See Also:
        RxJava wiki: lastOrDefault, "MSDN: Observable.lastOrDefaultAsync"
      • limit

        public final Observable<T> limit(int num)
        Returns an Observable that emits only the first num items emitted by the source Observable.

        Alias of take(int) to match Java 8 Stream API naming convention.

        This method returns an Observable that will invoke a subscribing Observer's onNext function a maximum of num times before invoking onCompleted.

        Scheduler:
        limit does not operate by default on a particular Scheduler.
        Parameters:
        num - the maximum number of items to emit
        Returns:
        an Observable that emits only the first num items emitted by the source Observable, or all of the items from the source Observable if that Observable emits fewer than num items
        See Also:
        RxJava wiki: take
      • map

        public final <R> Observable<R> map(Func1<? super T,? extends R> func)
        Returns an Observable that applies a specified function to each item emitted by the source Observable and emits the results of these function applications.

        Scheduler:
        map does not operate by default on a particular Scheduler.
        Parameters:
        func - a function to apply to each item emitted by the Observable
        Returns:
        an Observable that emits the items from the source Observable, transformed by the specified function
        See Also:
        RxJava wiki: map
      • materialize

        public final Observable<Notification<T>> materialize()
        Returns an Observable that represents all of the emissions and notifications from the source Observable into emissions marked with their original types within Notification objects.

        Scheduler:
        materialize does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits items that are the result of materializing the items and notifications of the source Observable
        See Also:
        RxJava wiki: materialize
      • mergeWith

        public final Observable<T> mergeWith(Observable<? extends T> t1)
        Flattens this and another Observable into a single Observable, without any transformation.

        You can combine items emitted by multiple Observables so that they appear as a single Observable, by using the mergeWith method.

        Scheduler:
        mergeWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - an Observable to be merged
        Returns:
        an Observable that emits all of the items emitted by the source Observables
        See Also:
        RxJava wiki: merge
      • ofType

        public final <R> Observable<R> ofType(Class<R> klass)
        Filters the items emitted by an Observable, only emitting those of the specified type.

        Scheduler:
        ofType does not operate by default on a particular Scheduler.
        Parameters:
        klass - the class type to filter the items emitted by the source Observable
        Returns:
        an Observable that emits items from the source Observable of type klass
        See Also:
        RxJava wiki: ofType
      • onBackpressureBuffer

        public final Observable<T> onBackpressureBuffer()
        Instructs an Observable that is emitting items faster than its observer can consume them to buffer these items indefinitely until they can be emitted.

        Scheduler:
        onBackpressureBuffer does not operate by default on a particular Scheduler.
        Returns:
        the source Observable modified to buffer items to the extent system resources allow
        See Also:
        RxJava wiki: Backpressure
      • onBackpressureDrop

        public final Observable<T> onBackpressureDrop()
        Instructs an Observable that is emitting items faster than its observer can consume them to discard, rather than emit, those items that its observer is not prepared to observe.

        If the downstream request count hits 0 then the Observable will refrain from calling onNext until the observer invokes request(n) again to increase the request count.

        Scheduler:
        onBackpressureDrop does not operate by default on a particular Scheduler.
        Returns:
        the source Observable modified to drop onNext notifications on overflow
        See Also:
        RxJava wiki: Backpressure
      • onErrorResumeNext

        public final Observable<T> onErrorResumeNext(Func1<Throwable,? extends Observable<? extends T>> resumeFunction)
        Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error.

        By default, when an Observable encounters an error that prevents it from emitting the expected item to its Observer, the Observable invokes its Observer's onError method, and then quits without invoking any more of its Observer's methods. The onErrorResumeNext method changes this behavior. If you pass a function that returns an Observable (resumeFunction) to onErrorResumeNext, if the original Observable encounters an error, instead of invoking its Observer's onError method, it will instead relinquish control to the Observable returned from resumeFunction, which will invoke the Observer's onNext method if it is able to do so. In such a case, because no Observable necessarily invokes onError, the Observer may never know that an error happened.

        You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.

        Scheduler:
        onErrorResumeNext does not operate by default on a particular Scheduler.
        Parameters:
        resumeFunction - a function that returns an Observable that will take over if the source Observable encounters an error
        Returns:
        the original Observable, with appropriately modified behavior
        See Also:
        RxJava wiki: onErrorResumeNext
      • onErrorResumeNext

        public final Observable<T> onErrorResumeNext(Observable<? extends T> resumeSequence)
        Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error.

        By default, when an Observable encounters an error that prevents it from emitting the expected item to its Observer, the Observable invokes its Observer's onError method, and then quits without invoking any more of its Observer's methods. The onErrorResumeNext method changes this behavior. If you pass another Observable (resumeSequence) to an Observable's onErrorResumeNext method, if the original Observable encounters an error, instead of invoking its Observer's onError method, it will instead relinquish control to resumeSequence which will invoke the Observer's onNext method if it is able to do so. In such a case, because no Observable necessarily invokes onError, the Observer may never know that an error happened.

        You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.

        Scheduler:
        onErrorResumeNext does not operate by default on a particular Scheduler.
        Parameters:
        resumeSequence - a function that returns an Observable that will take over if the source Observable encounters an error
        Returns:
        the original Observable, with appropriately modified behavior
        See Also:
        RxJava wiki: onErrorResumeNext
      • onErrorReturn

        public final Observable<T> onErrorReturn(Func1<Throwable,? extends T> resumeFunction)
        Instructs an Observable to emit an item (returned by a specified function) rather than invoking onError if it encounters an error.

        By default, when an Observable encounters an error that prevents it from emitting the expected item to its Observer, the Observable invokes its Observer's onError method, and then quits without invoking any more of its Observer's methods. The onErrorReturn method changes this behavior. If you pass a function (resumeFunction) to an Observable's onErrorReturn method, if the original Observable encounters an error, instead of invoking its Observer's onError method, it will instead emit the return value of resumeFunction.

        You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.

        Scheduler:
        onErrorReturn does not operate by default on a particular Scheduler.
        Parameters:
        resumeFunction - a function that returns an item that the new Observable will emit if the source Observable encounters an error
        Returns:
        the original Observable with appropriately modified behavior
        See Also:
        RxJava wiki: onErrorReturn
      • onExceptionResumeNext

        public final Observable<T> onExceptionResumeNext(Observable<? extends T> resumeSequence)
        Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an Exception.

        This differs from onErrorResumeNext(rx.functions.Func1<java.lang.Throwable, ? extends rx.Observable<? extends T>>) in that this one does not handle Throwable or Error but lets those continue through.

        By default, when an Observable encounters an exception that prevents it from emitting the expected item to its Observer, the Observable invokes its Observer's onError method, and then quits without invoking any more of its Observer's methods. The onExceptionResumeNext method changes this behavior. If you pass another Observable (resumeSequence) to an Observable's onExceptionResumeNext method, if the original Observable encounters an exception, instead of invoking its Observer's onError method, it will instead relinquish control to resumeSequence which will invoke the Observer's onNext method if it is able to do so. In such a case, because no Observable necessarily invokes onError, the Observer may never know that an exception happened.

        You can use this to prevent exceptions from propagating or to supply fallback data should exceptions be encountered.

        Scheduler:
        onErrorResumeNext does not operate by default on a particular Scheduler.
        Parameters:
        resumeSequence - a function that returns an Observable that will take over if the source Observable encounters an exception
        Returns:
        the original Observable, with appropriately modified behavior
        See Also:
        RxJava wiki: onExceptionResumeNext
      • publish

        public final <R> Observable<R> publish(Func1<? super Observable<T>,? extends Observable<R>> selector)
        Returns an Observable that emits the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the underlying sequence.

        Scheduler:
        publish does not operate by default on a particular Scheduler.
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a function that can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription forward.
        Returns:
        an Observable that emits the results of invoking the selector on the items emitted by a ConnectableObservable that shares a single subscription to the underlying sequence
        See Also:
        RxJava wiki: publish
      • reduce

        public final Observable<T> reduce(Func2<T,T,T> accumulator)
        Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, and emits the final result from the final call to your function as its sole item.

        This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate," "compress," or "inject" in other programming contexts. Groovy, for instance, has an inject method that does a similar operation on lists.

        Backpressure Support:
        This operator does not support backpressure because by intent it will receive all values and reduce them to a single onNext.
        Scheduler:
        reduce does not operate by default on a particular Scheduler.
        Parameters:
        accumulator - an accumulator function to be invoked on each item emitted by the source Observable, whose result will be used in the next accumulator call
        Returns:
        an Observable that emits a single item that is the result of accumulating the items emitted by the source Observable
        Throws:
        IllegalArgumentException - if the source Observable emits no items
        See Also:
        RxJava wiki: reduce, Wikipedia: Fold (higher-order function)
      • reduce

        public final <R> Observable<R> reduce(R initialValue,
                                              Func2<R,? super T,R> accumulator)
        Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a specified seed value, then feeds the result of that function along with the second item emitted by an Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the final result from the final call to your function as its sole item.

        This technique, which is called "reduce" here, is sometimec called "aggregate," "fold," "accumulate," "compress," or "inject" in other programming contexts. Groovy, for instance, has an inject method that does a similar operation on lists.

        Backpressure Support:
        This operator does not support backpressure because by intent it will receive all values and reduce them to a single onNext.
        Scheduler:
        reduce does not operate by default on a particular Scheduler.
        Parameters:
        initialValue - the initial (seed) accumulator value
        accumulator - an accumulator function to be invoked on each item emitted by the source Observable, the result of which will be used in the next accumulator call
        Returns:
        an Observable that emits a single item that is the result of accumulating the output from the items emitted by the source Observable
        See Also:
        RxJava wiki: reduce, Wikipedia: Fold (higher-order function)
      • repeat

        public final Observable<T> repeat()
        Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely.

        Scheduler:
        repeat operates by default on the trampoline Scheduler.
        Returns:
        an Observable that emits the items emitted by the source Observable repeatedly and in sequence
        See Also:
        RxJava wiki: repeat
      • repeat

        public final Observable<T> repeat(Scheduler scheduler)
        Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely, on a particular Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        scheduler - the Scheduler to emit the items on
        Returns:
        an Observable that emits the items emitted by the source Observable repeatedly and in sequence
        See Also:
        RxJava wiki: repeat
      • repeat

        public final Observable<T> repeat(long count)
        Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times.

        Scheduler:
        repeat operates by default on the trampoline Scheduler.
        Parameters:
        count - the number of times the source Observable items are repeated, a count of 0 will yield an empty sequence
        Returns:
        an Observable that repeats the sequence of items emitted by the source Observable at most count times
        Throws:
        IllegalArgumentException - if count is less than zero
        See Also:
        RxJava wiki: repeat
      • repeat

        public final Observable<T> repeat(long count,
                                          Scheduler scheduler)
        Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times, on a particular Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        count - the number of times the source Observable items are repeated, a count of 0 will yield an empty sequence
        scheduler - the Scheduler to emit the items on
        Returns:
        an Observable that repeats the sequence of items emitted by the source Observable at most count times on a particular Scheduler
        See Also:
        RxJava Wiki: repeat()
      • repeatWhen

        public final Observable<T> repeatWhen(Func1<? super Observable<? extends Void>,? extends Observable<?>> notificationHandler,
                                              Scheduler scheduler)
        Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted. An onCompleted notification from the source will result in the emission of a void item to the Observable provided as an argument to the notificationHandler function. If that Observable calls onComplete or onError then repeatWhen will call onCompleted or onError on the child subscription. Otherwise, this Observable will resubscribe to the source Observable, on a particular Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        notificationHandler - receives an Observable of notifications with which a user can complete or error, aborting the repeat.
        scheduler - the Scheduler to emit the items on
        Returns:
        the source Observable modified with repeat logic
        See Also:
        RxJava Wiki: repeatWhen()
      • repeatWhen

        public final Observable<T> repeatWhen(Func1<? super Observable<? extends Void>,? extends Observable<?>> notificationHandler)
        Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted. An onCompleted notification from the source will result in the emission of a void item to the Observable provided as an argument to the notificationHandler function. If that Observable calls onComplete or onError then repeatWhen will call onCompleted or onError on the child subscription. Otherwise, this Observable will resubscribe to the source observable.

        Scheduler:
        repeatWhen operates by default on the trampoline Scheduler.
        Parameters:
        notificationHandler - receives an Observable of notifications with which a user can complete or error, aborting the repeat.
        Returns:
        the source Observable modified with repeat logic
        See Also:
        RxJava Wiki: repeatWhen()
      • replay

        public final ConnectableObservable<T> replay()
        Returns a ConnectableObservable that shares a single subscription to the underlying Observable that will replay all of its items and notifications to any future Observer. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay does not operate by default on a particular Scheduler.
        Returns:
        a ConnectableObservable that upon connection causes the source Observable to emit its items to its Observers
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector)
        Returns an Observable that emits items that are the results of invoking a specified selector on the items emitted by a ConnectableObservable that shares a single subscription to the source Observable.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay does not operate by default on a particular Scheduler.
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        Returns:
        an Observable that emits items that are the results of invoking the selector on a ConnectableObservable that shares a single subscription to the source Observable
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              int bufferSize)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying bufferSize notifications.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay does not operate by default on a particular Scheduler.
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        bufferSize - the buffer size that limits the number of items the connectable observable can replay
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable replaying no more than bufferSize items
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              int bufferSize,
                                              long time,
                                              TimeUnit unit)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more than bufferSize items that were emitted within a specified time window.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay operates by default on the computation Scheduler.
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        bufferSize - the buffer size that limits the number of items the connectable observable can replay
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, and replays no more than bufferSize items that were emitted within the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              int bufferSize,
                                              long time,
                                              TimeUnit unit,
                                              Scheduler scheduler)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more than bufferSize items that were emitted within a specified time window.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        bufferSize - the buffer size that limits the number of items the connectable observable can replay
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        scheduler - the Scheduler that is the time source for the window
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, and replays no more than bufferSize items that were emitted within the window defined by time
        Throws:
        IllegalArgumentException - if bufferSize is less than zero
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              int bufferSize,
                                              Scheduler scheduler)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying a maximum of bufferSize items.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        bufferSize - the buffer size that limits the number of items the connectable observable can replay
        scheduler - the Scheduler on which the replay is observed
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more than bufferSize notifications
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              long time,
                                              TimeUnit unit)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay operates by default on the computation Scheduler.
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              long time,
                                              TimeUnit unit,
                                              Scheduler scheduler)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        scheduler - the scheduler that is the time source for the window
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final <R> Observable<R> replay(Func1<? super Observable<T>,? extends Observable<R>> selector,
                                              Scheduler scheduler)
        Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Type Parameters:
        R - the type of items emitted by the resulting Observable
        Parameters:
        selector - a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observable
        scheduler - the Scheduler where the replay is observed
        Returns:
        an Observable that emits items that are the results of invoking the selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(int bufferSize)
        Returns a ConnectableObservable that shares a single subscription to the source Observable that replays at most bufferSize items emitted by that Observable. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay does not operate by default on a particular Scheduler.
        Parameters:
        bufferSize - the buffer size that limits the number of items that can be replayed
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items emitted by that Observable
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(int bufferSize,
                                                     long time,
                                                     TimeUnit unit)
        Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items that were emitted during a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay operates by default on the computation Scheduler.
        Parameters:
        bufferSize - the buffer size that limits the number of items that can be replayed
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items that were emitted during the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(int bufferSize,
                                                     long time,
                                                     TimeUnit unit,
                                                     Scheduler scheduler)
        Returns a ConnectableObservable that shares a single subscription to the source Observable and that replays a maximum of bufferSize items that are emitted within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        bufferSize - the buffer size that limits the number of items that can be replayed
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        scheduler - the scheduler that is used as a time source for the window
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items that were emitted during the window defined by time
        Throws:
        IllegalArgumentException - if bufferSize is less than zero
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(int bufferSize,
                                                     Scheduler scheduler)
        Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items emitted by that Observable. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        bufferSize - the buffer size that limits the number of items that can be replayed
        scheduler - the scheduler on which the Observers will observe the emitted items
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays at most bufferSize items that were emitted by the Observable
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(long time,
                                                     TimeUnit unit)
        Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        This version of replay operates by default on the computation Scheduler.
        Parameters:
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays the items that were emitted during the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(long time,
                                                     TimeUnit unit,
                                                     Scheduler scheduler)
        Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the duration of the window in which the replayed items must have been emitted
        unit - the time unit of time
        scheduler - the Scheduler that is the time source for the window
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable and replays the items that were emitted during the window defined by time
        See Also:
        RxJava wiki: replay
      • replay

        public final ConnectableObservable<T> replay(Scheduler scheduler)
        Returns a ConnectableObservable that shares a single subscription to the source Observable that will replay all of its items and notifications to any future Observer on the given Scheduler. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when its connect method is called.

        Backpressure Support:
        This operator does not support backpressure because multicasting means the stream is "hot" with multiple subscribers. Each child will need to manage backpressure independently using operators such as onBackpressureDrop() and onBackpressureBuffer().
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        scheduler - the Scheduler on which the Observers will observe the emitted items
        Returns:
        a ConnectableObservable that shares a single subscription to the source Observable that will replay all of its items and notifications to any future Observer on the given Scheduler
        See Also:
        RxJava wiki: replay
      • retry

        public final Observable<T> retry()
        Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError (infinite retry count).

        If the source Observable calls Observer.onError(java.lang.Throwable), this method will resubscribe to the source Observable rather than propagating the onError call.

        Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second time and emits [1, 2, 3, 4, 5] then the complete sequence of emissions and notifications would be [1, 2, 1, 2, 3, 4, 5, onCompleted].

        Scheduler:
        retry operates by default on the trampoline Scheduler.
        Returns:
        the source Observable modified with retry logic
        See Also:
        RxJava wiki: retry
      • retry

        public final Observable<T> retry(long count)
        Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError up to a specified number of retries.

        If the source Observable calls Observer.onError(java.lang.Throwable), this method will resubscribe to the source Observable for a maximum of count resubscriptions rather than propagating the onError call.

        Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second time and emits [1, 2, 3, 4, 5] then the complete sequence of emissions and notifications would be [1, 2, 1, 2, 3, 4, 5, onCompleted].

        Scheduler:
        retry operates by default on the trampoline Scheduler.
        Parameters:
        count - number of retry attempts before failing
        Returns:
        the source Observable modified with retry logic
        See Also:
        RxJava wiki: retry
      • retry

        public final Observable<T> retry(Func2<Integer,Throwable,Boolean> predicate)
        Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError and the predicate returns true for that specific exception and retry count.

        Scheduler:
        retry operates by default on the trampoline Scheduler.
        Parameters:
        predicate - the predicate that determines if a resubscription may happen in case of a specific exception and retry count
        Returns:
        the source Observable modified with retry logic
        See Also:
        retry(), RxJava Wiki: retry()
      • retryWhen

        public final Observable<T> retryWhen(Func1<? super Observable<? extends Throwable>,? extends Observable<?>> notificationHandler)
        Returns an Observable that emits the same values as the source observable with the exception of an onError. An onError notification from the source will result in the emission of a Throwable item to the Observable provided as an argument to the notificationHandler function. If that Observable calls onComplete or onError then retry will call onCompleted or onError on the child subscription. Otherwise, this Observable will resubscribe to the source Observable.

        Example: This retries 3 times, each time incrementing the number of seconds it waits.

          Observable.create((Subscriber<? super String> s) -> { System.out.println("subscribing"); s.onError(new RuntimeException("always fails")); }).retryWhen(attempts -> { return attempts.zipWith(Observable.range(1, 3), (n, i) -> i).flatMap(i -> { System.out.println("delay retry by " + i + " second(s)"); return Observable.timer(i, TimeUnit.SECONDS); }); }).toBlocking().forEach(System.out::println);  
        Output is:
          subscribing delay retry by 1 second(s) subscribing delay retry by 2 second(s) subscribing delay retry by 3 second(s) subscribing  
        Scheduler:
        retryWhen operates by default on the trampoline Scheduler.
        Parameters:
        notificationHandler - receives an Observable of notifications with which a user can complete or error, aborting the retry
        Returns:
        the source Observable modified with retry logic
        See Also:
        RxJava Wiki: retryWhen()
      • retryWhen

        public final Observable<T> retryWhen(Func1<? super Observable<? extends Throwable>,? extends Observable<?>> notificationHandler,
                                             Scheduler scheduler)
        Returns an Observable that emits the same values as the source observable with the exception of an onError. An onError will cause the emission of the Throwable that cause the error to the Observable returned from notificationHandler. If that Observable calls onComplete or onError then retry will call onCompleted or onError on the child subscription. Otherwise, this Observable will resubscribe to the source observable, on a particular Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        notificationHandler - receives an Observable of notifications with which a user can complete or error, aborting the retry
        scheduler - the Scheduler on which to subscribe to the source Observable
        Returns:
        the source Observable modified with retry logic
        See Also:
        RxJava Wiki: retryWhen()
      • sample

        public final Observable<T> sample(long period,
                                          TimeUnit unit)
        Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        sample operates by default on the computation Scheduler.
        Parameters:
        period - the sampling rate
        unit - the TimeUnit in which period is defined
        Returns:
        an Observable that emits the results of sampling the items emitted by the source Observable at the specified time interval
        See Also:
        RxJava wiki: sample, RxJava wiki: Backpressure, throttleLast(long, TimeUnit)
      • sample

        public final Observable<T> sample(long period,
                                          TimeUnit unit,
                                          Scheduler scheduler)
        Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals, where the intervals are defined on a particular Scheduler.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        period - the sampling rate
        unit - the TimeUnit in which period is defined
        scheduler - the Scheduler to use when sampling
        Returns:
        an Observable that emits the results of sampling the items emitted by the source Observable at the specified time interval
        See Also:
        RxJava wiki: sample, RxJava wiki: Backpressure, throttleLast(long, TimeUnit, Scheduler)
      • sample

        public final <U> Observable<T> sample(Observable<U> sampler)
        Returns an Observable that, when the specified sampler Observable emits an item or completes, emits the most recently emitted item (if any) emitted by the source Observable since the previous emission from the sampler Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses the emissions of the sampler Observable to control data flow.
        Scheduler:
        This version of sample does not operate by default on a particular Scheduler.
        Parameters:
        sampler - the Observable to use for sampling the source Observable
        Returns:
        an Observable that emits the results of sampling the items emitted by this Observable whenever the sampler Observable emits an item or completes
        See Also:
        RxJava wiki: sample, RxJava wiki: Backpressure
      • scan

        public final Observable<T> scan(Func2<T,T,T> accumulator)
        Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations.

        This sort of function is sometimes called an accumulator.

        Scheduler:
        scan does not operate by default on a particular Scheduler.
        Parameters:
        accumulator - an accumulator function to be invoked on each item emitted by the source Observable, whose result will be emitted to Observers via onNext and used in the next accumulator call
        Returns:
        an Observable that emits the results of each call to the accumulator function
        See Also:
        RxJava wiki: scan
      • scan

        public final <R> Observable<R> scan(R initialValue,
                                            Func2<R,? super T,R> accumulator)
        Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a seed value, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations.

        This sort of function is sometimes called an accumulator.

        Note that the Observable that results from this method will emit initialValue as its first emitted item.

        Scheduler:
        scan does not operate by default on a particular Scheduler.
        Parameters:
        initialValue - the initial (seed) accumulator item
        accumulator - an accumulator function to be invoked on each item emitted by the source Observable, whose result will be emitted to Observers via onNext and used in the next accumulator call
        Returns:
        an Observable that emits initialValue followed by the results of each call to the accumulator function
        See Also:
        RxJava wiki: scan
      • serialize

        public final Observable<T> serialize()
        Forces an Observable's emissions and notifications to be serialized and for it to obey the Rx contract in other ways.

        It is possible for an Observable to invoke its Subscribers' methods asynchronously, perhaps from different threads. This could make such an Observable poorly-behaved, in that it might try to invoke onCompleted or onError before one of its onNext invocations, or it might call onNext from two different threads concurrently. You can force such an Observable to be well-behaved and sequential by applying the serialize method to it.

        Scheduler:
        serialize does not operate by default on a particular Scheduler.
        Returns:
        an Observable that is guaranteed to be well-behaved and to make only serialized calls to its observers
        See Also:
        RxJava wiki: serialize
      • single

        public final Observable<T> single()
        Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item. If the source Observable emits more than one item or no items, notify of an IllegalArgumentException or NoSuchElementException respectively.

        Scheduler:
        single does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits the single item emitted by the source Observable
        Throws:
        IllegalArgumentException - if the source emits more than one item
        NoSuchElementException - if the source emits no items
        See Also:
        RxJava wiki: single, "MSDN: Observable.singleAsync"
      • single

        public final Observable<T> single(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits the single item emitted by the source Observable that matches a specified predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no such items, notify of an IllegalArgumentException or NoSuchElementException respectively.

        Scheduler:
        single does not operate by default on a particular Scheduler.
        Parameters:
        predicate - a predicate function to evaluate items emitted by the source Observable
        Returns:
        an Observable that emits the single item emitted by the source Observable that matches the predicate
        Throws:
        IllegalArgumentException - if the source Observable emits more than one item that matches the predicate
        NoSuchElementException - if the source Observable emits no item that matches the predicate
        See Also:
        RxJava wiki: single, "MSDN: Observable.singleAsync"
      • singleOrDefault

        public final Observable<T> singleOrDefault(T defaultValue)
        Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item, or a default item if the source Observable emits no items. If the source Observable emits more than one item, throw an IllegalArgumentException.

        Scheduler:
        singleOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - a default value to emit if the source Observable emits no item
        Returns:
        an Observable that emits the single item emitted by the source Observable, or a default item if the source Observable is empty
        Throws:
        IllegalArgumentException - if the source Observable emits more than one item
        See Also:
        RxJava wiki: single, "MSDN: Observable.singleOrDefaultAsync"
      • singleOrDefault

        public final Observable<T> singleOrDefault(T defaultValue,
                                                   Func1<? super T,Boolean> predicate)
        Returns an Observable that emits the single item emitted by the source Observable that matches a predicate, if that Observable emits only one such item, or a default item if the source Observable emits no such items. If the source Observable emits more than one such item, throw an IllegalArgumentException.

        Scheduler:
        singleOrDefault does not operate by default on a particular Scheduler.
        Parameters:
        defaultValue - a default item to emit if the source Observable emits no matching items
        predicate - a predicate function to evaluate items emitted by the source Observable
        Returns:
        an Observable that emits the single item emitted by the source Observable that matches the predicate, or the default item if no emitted item matches the predicate
        Throws:
        IllegalArgumentException - if the source Observable emits more than one item that matches the predicate
        See Also:
        RxJava wiki: single, "MSDN: Observable.singleOrDefaultAsync"
      • skip

        public final Observable<T> skip(int num)
        Returns an Observable that skips the first num items emitted by the source Observable and emits the remainder.

        Scheduler:
        This version of skip does not operate by default on a particular Scheduler.
        Parameters:
        num - the number of items to skip
        Returns:
        an Observable that is identical to the source Observable except that it does not emit the first num items that the source Observable emits
        See Also:
        RxJava wiki: skip
      • skip

        public final Observable<T> skip(long time,
                                        TimeUnit unit)
        Returns an Observable that skips values emitted by the source Observable before a specified time window elapses.

        Scheduler:
        This version of skip operates by default on the computation Scheduler.
        Parameters:
        time - the length of the time window to skip
        unit - the time unit of time
        Returns:
        an Observable that skips values emitted by the source Observable before the time window defined by time elapses and the emits the remainder
        See Also:
        RxJava wiki: skip
      • skip

        public final Observable<T> skip(long time,
                                        TimeUnit unit,
                                        Scheduler scheduler)
        Returns an Observable that skips values emitted by the source Observable before a specified time window on a specified Scheduler elapses.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the length of the time window to skip
        unit - the time unit of time
        scheduler - the Scheduler on which the timed wait happens
        Returns:
        an Observable that skips values emitted by the source Observable before the time window defined by time and scheduler elapses, and then emits the remainder
        See Also:
        RxJava wiki: skip
      • skipLast

        public final Observable<T> skipLast(int count)
        Returns an Observable that drops a specified number of items from the end of the sequence emitted by the source Observable.

        This Observer accumulates a queue long enough to store the first count items. As more items are received, items are taken from the front of the queue and emitted by the returned Observable. This causes such items to be delayed.

        Scheduler:
        This version of skipLast does not operate by default on a particular Scheduler.
        Parameters:
        count - number of items to drop from the end of the source sequence
        Returns:
        an Observable that emits the items emitted by the source Observable except for the dropped ones at the end
        Throws:
        IndexOutOfBoundsException - if count is less than zero
        See Also:
        RxJava wiki: skipLast
      • skipLast

        public final Observable<T> skipLast(long time,
                                            TimeUnit unit)
        Returns an Observable that drops items emitted by the source Observable during a specified time window before the source completes.

        Note: this action will cache the latest items arriving in the specified time window.

        Scheduler:
        This version of skipLast operates by default on the computation Scheduler.
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that drops those items emitted by the source Observable in a time window before the source completes defined by time
        See Also:
        RxJava wiki: skipLast
      • skipLast

        public final Observable<T> skipLast(long time,
                                            TimeUnit unit,
                                            Scheduler scheduler)
        Returns an Observable that drops items emitted by the source Observable during a specified time window (defined on a specified scheduler) before the source completes.

        Note: this action will cache the latest items arriving in the specified time window.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        scheduler - the scheduler used as the time source
        Returns:
        an Observable that drops those items emitted by the source Observable in a time window before the source completes defined by time and scheduler
        See Also:
        RxJava wiki: skipLast
      • skipUntil

        public final <U> Observable<T> skipUntil(Observable<U> other)
        Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.

        Scheduler:
        skipUntil does not operate by default on a particular Scheduler.
        Parameters:
        other - the second Observable that has to emit an item before the source Observable's elements begin to be mirrored by the resulting Observable
        Returns:
        an Observable that skips items from the source Observable until the second Observable emits an item, then emits the remaining items
        See Also:
        RxJava wiki: skipUntil
      • skipWhile

        public final Observable<T> skipWhile(Func1<? super T,Boolean> predicate)
        Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds true, but emits all further source items as soon as the condition becomes false.

        Scheduler:
        skipWhile does not operate by default on a particular Scheduler.
        Parameters:
        predicate - a function to test each item emitted from the source Observable
        Returns:
        an Observable that begins emitting items emitted by the source Observable when the specified predicate becomes false
        See Also:
        RxJava wiki: skipWhile
      • startWith

        public final Observable<T> startWith(Observable<T> values)
        Returns an Observable that emits the items in a specified Observable before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        values - an Observable that contains the items you want the modified Observable to emit first
        Returns:
        an Observable that emits the items in the specified Observable and then emits the items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(Iterable<T> values)
        Returns an Observable that emits the items in a specified Iterable before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        values - an Iterable that contains the items you want the modified Observable to emit first
        Returns:
        an Observable that emits the items in the specified Iterable and then emits the items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1)
        Returns an Observable that emits a specified item before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the item to emit
        Returns:
        an Observable that emits the specified item before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4,
                                             T t5)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        t5 - the fifth item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4,
                                             T t5,
                                             T t6)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        t5 - the fifth item to emit
        t6 - the sixth item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4,
                                             T t5,
                                             T t6,
                                             T t7)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        t5 - the fifth item to emit
        t6 - the sixth item to emit
        t7 - the seventh item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4,
                                             T t5,
                                             T t6,
                                             T t7,
                                             T t8)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        t5 - the fifth item to emit
        t6 - the sixth item to emit
        t7 - the seventh item to emit
        t8 - the eighth item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • startWith

        public final Observable<T> startWith(T t1,
                                             T t2,
                                             T t3,
                                             T t4,
                                             T t5,
                                             T t6,
                                             T t7,
                                             T t8,
                                             T t9)
        Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable.

        Scheduler:
        startWith does not operate by default on a particular Scheduler.
        Parameters:
        t1 - the first item to emit
        t2 - the second item to emit
        t3 - the third item to emit
        t4 - the fourth item to emit
        t5 - the fifth item to emit
        t6 - the sixth item to emit
        t7 - the seventh item to emit
        t8 - the eighth item to emit
        t9 - the ninth item to emit
        Returns:
        an Observable that emits the specified items before it begins to emit items emitted by the source Observable
        See Also:
        RxJava wiki: startWith
      • subscribe

        public final Subscription subscribe()
        Subscribes to an Observable but ignore its emissions and notifications.
        Scheduler:
        subscribe does not operate by default on a particular Scheduler.
        Returns:
        a Subscription reference with which the Observer can stop receiving items before the Observable has finished sending them
        Throws:
        OnErrorNotImplementedException - if the Observable tries to call onError
      • subscribe

        public final Subscription subscribe(Action1<? super T> onNext,
                                            Action1<Throwable> onError)
        Subscribes to an Observable and provides callbacks to handle the items it emits and any error notification it issues.
        Scheduler:
        subscribe does not operate by default on a particular Scheduler.
        Parameters:
        onNext - the Action1<T> you have designed to accept emissions from the Observable
        onError - the Action1<Throwable> you have designed to accept any error notification from the Observable
        Returns:
        a Subscription reference with which the Observer can stop receiving items before the Observable has finished sending them
        Throws:
        IllegalArgumentException - if onNext is null, or if onError is null
        See Also:
        RxJava wiki: onNext, onCompleted, and onError
      • subscribe

        public final Subscription subscribe(Action1<? super T> onNext,
                                            Action1<Throwable> onError,
                                            Action0 onComplete)
        Subscribes to an Observable and provides callbacks to handle the items it emits and any error or completion notification it issues.
        Scheduler:
        subscribe does not operate by default on a particular Scheduler.
        Parameters:
        onNext - the Action1<T> you have designed to accept emissions from the Observable
        onError - the Action1<Throwable> you have designed to accept any error notification from the Observable
        onComplete - the Action0 you have designed to accept a completion notification from the Observable
        Returns:
        a Subscription reference with which the Observer can stop receiving items before the Observable has finished sending them
        Throws:
        IllegalArgumentException - if onNext is null, or if onError is null, or if onComplete is null
        See Also:
        RxJava wiki: onNext, onCompleted, and onError
      • subscribe

        public final Subscription subscribe(Observer<? super T> observer)
        Subscribes to an Observable and provides an Observer that implements functions to handle the items the Observable emits and any error or completion notification it issues.
        Scheduler:
        subscribe does not operate by default on a particular Scheduler.
        Parameters:
        observer - the Observer that will handle emissions and notifications from the Observable
        Returns:
        a Subscription reference with which the Observer can stop receiving items before the Observable has completed
        See Also:
        RxJava wiki: onNext, onCompleted, and onError
      • unsafeSubscribe

        public final Subscription unsafeSubscribe(Subscriber<? super T> subscriber)
        Subscribes to an Observable and invokes Observable.OnSubscribe function without any contract protection, error handling, unsubscribe, or execution hooks.

        Use this only for implementing an Observable.Operator that requires nested subscriptions. For other purposes, use subscribe(Subscriber) which ensures the Rx contract and other functionality.

        Scheduler:
        unsafeSubscribe does not operate by default on a particular Scheduler.
        Parameters:
        subscriber - the Subscriber that will handle emissions and notifications from the Observable
        Returns:
        a Subscription reference with which the Subscriber can stop receiving items before the Observable has completed
      • subscribe

        public final Subscription subscribe(Subscriber<? super T> subscriber)
        Subscribes to an Observable and provides a Subscriber that implements functions to handle the items the Observable emits and any error or completion notification it issues.

        A typical implementation of subscribe does the following:

        1. It stores a reference to the Subscriber in a collection object, such as a List<T> object.
        2. It returns a reference to the Subscription interface. This enables Subscribers to unsubscribe, that is, to stop receiving items and notifications before the Observable completes, which also invokes the Subscriber's onCompleted method.

        An Observable<T> instance is responsible for accepting all subscriptions and notifying all Subscribers. Unless the documentation for a particular Observable<T> implementation indicates otherwise, Subscriber should make no assumptions about the order in which multiple Subscribers will receive their notifications.

        For more information see the RxJava wiki.

        Scheduler:
        subscribe does not operate by default on a particular Scheduler.
        Parameters:
        subscriber - the Subscriber that will handle emissions and notifications from the Observable
        Returns:
        a Subscription reference with which Subscribers that are Observers can unsubscribe from the Observable
        Throws:
        IllegalStateException - if subscribe is unable to obtain an OnSubscribe<> function
        IllegalArgumentException - if the Subscriber provided as the argument to subscribe is null
        OnErrorNotImplementedException - if the Subscriber's onError method is null
        RuntimeException - if the Subscriber's onError method itself threw a Throwable
      • switchMap

        public final <R> Observable<R> switchMap(Func1<? super T,? extends Observable<? extends R>> func)
        Returns a new Observable by applying a function that you supply to each item emitted by the source Observable that returns an Observable, and then emitting the items emitted by the most recently emitted of these Observables.

        Scheduler:
        switchMap does not operate by default on a particular Scheduler.
        Parameters:
        func - a function that, when applied to an item emitted by the source Observable, returns an Observable
        Returns:
        an Observable that emits the items emitted by the Observable returned from applying func to the most recently emitted item emitted by the source Observable
        See Also:
        RxJava wiki: switchMap
      • take

        public final Observable<T> take(int num)
        Returns an Observable that emits only the first num items emitted by the source Observable.

        This method returns an Observable that will invoke a subscribing Observer's onNext function a maximum of num times before invoking onCompleted.

        Scheduler:
        This version of take does not operate by default on a particular Scheduler.
        Parameters:
        num - the maximum number of items to emit
        Returns:
        an Observable that emits only the first num items emitted by the source Observable, or all of the items from the source Observable if that Observable emits fewer than num items
        See Also:
        RxJava wiki: take
      • take

        public final Observable<T> take(long time,
                                        TimeUnit unit)
        Returns an Observable that emits those items emitted by source Observable before a specified time runs out.

        Scheduler:
        This version of take operates by default on the computation Scheduler.
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that emits those items emitted by the source Observable before the time runs out
        See Also:
        RxJava wiki: take
      • take

        public final Observable<T> take(long time,
                                        TimeUnit unit,
                                        Scheduler scheduler)
        Returns an Observable that emits those items emitted by source Observable before a specified time (on a specified Scheduler) runs out.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        scheduler - the Scheduler used for time source
        Returns:
        an Observable that emits those items emitted by the source Observable before the time runs out, according to the specified Scheduler
        See Also:
        RxJava wiki: take
      • takeFirst

        public final Observable<T> takeFirst(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition.

        Scheduler:
        takeFirst does not operate by default on a particular Scheduler.
        Parameters:
        predicate - the condition any item emitted by the source Observable has to satisfy
        Returns:
        an Observable that emits only the very first item emitted by the source Observable that satisfies the given condition, or that completes without emitting anything if the source Observable completes without emitting a single condition-satisfying item
        See Also:
        RxJava wiki: takeFirst, "MSDN: Observable.firstAsync"
      • takeLast

        public final Observable<T> takeLast(int count)
        Returns an Observable that emits only the last count items emitted by the source Observable.

        Scheduler:
        This version of takeLast does not operate by default on a particular Scheduler.
        Parameters:
        count - the number of items to emit from the end of the sequence of items emitted by the source Observable
        Returns:
        an Observable that emits only the last count items emitted by the source Observable
        Throws:
        IndexOutOfBoundsException - if count is less than zero
        See Also:
        RxJava wiki: takeLast
      • takeLast

        public final Observable<T> takeLast(int count,
                                            long time,
                                            TimeUnit unit)
        Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed.

        Scheduler:
        This version of takeLast operates by default on the computation Scheduler.
        Parameters:
        count - the maximum number of items to emit
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that emits at most count items from the source Observable that were emitted in a specified window of time before the Observable completed
        See Also:
        RxJava wiki: takeLast
      • takeLast

        public final Observable<T> takeLast(int count,
                                            long time,
                                            TimeUnit unit,
                                            Scheduler scheduler)
        Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a given Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        count - the maximum number of items to emit
        time - the length of the time window
        unit - the time unit of time
        scheduler - the Scheduler that provides the timestamps for the observed items
        Returns:
        an Observable that emits at most count items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by the given scheduler
        Throws:
        IndexOutOfBoundsException - if count is less than zero
        See Also:
        RxJava wiki: takeLast
      • takeLast

        public final Observable<T> takeLast(long time,
                                            TimeUnit unit)
        Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed.

        Scheduler:
        This version of takeLast operates by default on the computation Scheduler.
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that emits the items from the source Observable that were emitted in the window of time before the Observable completed specified by time
        See Also:
        RxJava wiki: takeLast
      • takeLast

        public final Observable<T> takeLast(long time,
                                            TimeUnit unit,
                                            Scheduler scheduler)
        Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a specified Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        scheduler - the Scheduler that provides the timestamps for the Observed items
        Returns:
        an Observable that emits the items from the source Observable that were emitted in the window of time before the Observable completed specified by time, where the timing information is provided by scheduler
        See Also:
        RxJava wiki: takeLast
      • takeLastBuffer

        public final Observable<List<T>> takeLastBuffer(int count)
        Returns an Observable that emits a single List containing the last count elements emitted by the source Observable.

        Scheduler:
        This version of takeLastBuffer does not operate by default on a particular Scheduler.
        Parameters:
        count - the number of items to emit in the list
        Returns:
        an Observable that emits a single list containing the last count elements emitted by the source Observable
        See Also:
        RxJava wiki: takeLastBuffer
      • takeLastBuffer

        public final Observable<List<T>> takeLastBuffer(int count,
                                                        long time,
                                                        TimeUnit unit)
        Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time before the source Observable completed.

        Scheduler:
        This version of takeLastBuffer operates by default on the computation Scheduler.
        Parameters:
        count - the maximum number of items to emit
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that emits a single List containing at most count items emitted by the source Observable during the time window defined by time before the source Observable completed
        See Also:
        RxJava wiki: takeLastBuffer
      • takeLastBuffer

        public final Observable<List<T>> takeLastBuffer(int count,
                                                        long time,
                                                        TimeUnit unit,
                                                        Scheduler scheduler)
        Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time (on a specified Scheduler) before the source Observable completed.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        count - the maximum number of items to emit
        time - the length of the time window
        unit - the time unit of time
        scheduler - the Scheduler that provides the timestamps for the observed items
        Returns:
        an Observable that emits a single List containing at most count items emitted by the source Observable during the time window defined by time before the source Observable completed
        See Also:
        RxJava wiki: takeLastBuffer
      • takeLastBuffer

        public final Observable<List<T>> takeLastBuffer(long time,
                                                        TimeUnit unit)
        Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed.

        Scheduler:
        This version of takeLastBuffer operates by default on the computation Scheduler.
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        Returns:
        an Observable that emits a single List containing the items emitted by the source Observable during the time window defined by time before the source Observable completed
        See Also:
        RxJava wiki: takeLastBuffer
      • takeLastBuffer

        public final Observable<List<T>> takeLastBuffer(long time,
                                                        TimeUnit unit,
                                                        Scheduler scheduler)
        Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed, where the timing information is provided by the given Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        time - the length of the time window
        unit - the time unit of time
        scheduler - the Scheduler that provides the timestamps for the observed items
        Returns:
        an Observable that emits a single List containing the items emitted by the source Observable during the time window defined by time before the source Observable completed, where the timing information is provided by scheduler
        See Also:
        RxJava wiki: takeLastBuffer
      • takeUntil

        public final <E> Observable<T> takeUntil(Observable<? extends E> other)
        Returns an Observable that emits the items emitted by the source Observable until a second Observable emits an item.

        Scheduler:
        takeUntil does not operate by default on a particular Scheduler.
        Type Parameters:
        E - the type of items emitted by other
        Parameters:
        other - the Observable whose first emitted item will cause takeUntil to stop emitting items from the source Observable
        Returns:
        an Observable that emits the items emitted by the source Observable until such time as other emits its first item
        See Also:
        RxJava wiki: takeUntil
      • takeWhile

        public final Observable<T> takeWhile(Func1<? super T,Boolean> predicate)
        Returns an Observable that emits items emitted by the source Observable so long as each item satisfied a specified condition, and then completes as soon as this condition is not satisfied.

        Scheduler:
        takeWhile does not operate by default on a particular Scheduler.
        Parameters:
        predicate - a function that evaluates an item emitted by the source Observable and returns a Boolean
        Returns:
        an Observable that emits the items from the source Observable so long as each item satisfies the condition defined by predicate, then completes
        See Also:
        RxJava wiki: takeWhile
      • throttleFirst

        public final Observable<T> throttleFirst(long skipDuration,
                                                 TimeUnit unit,
                                                 Scheduler scheduler)
        Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration, where the windows are managed by a specified Scheduler.

        This differs from throttleLast(long, java.util.concurrent.TimeUnit) in that this only tracks passage of time whereas throttleLast(long, java.util.concurrent.TimeUnit) ticks at scheduled intervals.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        skipDuration - time to wait before emitting another item after emitting the last item
        unit - the unit of time of skipDuration
        scheduler - the Scheduler to use internally to manage the timers that handle timeout for each event
        Returns:
        an Observable that performs the throttle operation
        See Also:
        RxJava wiki: throttleFirst, RxJava wiki: Backpressure
      • throttleWithTimeout

        public final Observable<T> throttleWithTimeout(long timeout,
                                                       TimeUnit unit,
                                                       Scheduler scheduler)
        Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window, where the time window is governed by a specified Scheduler.

        Note: If the source Observable keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Observable.

        Information on debounce vs throttle:

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timeout - the length of the window of time that must pass after the emission of an item from the source Observable in which that Observable emits no items in order for the item to be emitted by the resulting Observable
        unit - the TimeUnit of timeout
        scheduler - the Scheduler to use internally to manage the timers that handle the timeout for each item
        Returns:
        an Observable that filters out items that are too quickly followed by newer items
        See Also:
        RxJava wiki: throttleWithTimeout, RxJava wiki: Backpressure, debounce(long, TimeUnit, Scheduler)
      • timeInterval

        public final Observable<TimeInterval<T>> timeInterval()
        Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable.

        Scheduler:
        timeInterval operates by default on the immediate Scheduler.
        Returns:
        an Observable that emits time interval information items
        See Also:
        RxJava wiki: timeInterval
      • timeInterval

        public final Observable<TimeInterval<T>> timeInterval(Scheduler scheduler)
        Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable, where this interval is computed on a specified Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        scheduler - the Scheduler used to compute time intervals
        Returns:
        an Observable that emits time interval information items
        See Also:
        RxJava wiki: timeInterval
      • timeout

        public final <U,V> Observable<T> timeout(Func0<? extends Observable<U>> firstTimeoutSelector,
                                                 Func1<? super T,? extends Observable<V>> timeoutSelector)
        Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables.

        Scheduler:
        This version of timeout operates by default on the immediate Scheduler.
        Type Parameters:
        U - the first timeout value type (ignored)
        V - the subsequent timeout value type (ignored)
        Parameters:
        firstTimeoutSelector - a function that returns an Observable that determines the timeout window for the first source item
        timeoutSelector - a function that returns an Observable for each item emitted by the source Observable and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequence
        Returns:
        an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if either the first item or any subsequent item doesn't arrive within the time windows specified by the timeout selectors
        See Also:
        RxJava wiki: timeout
      • timeout

        public final <U,V> Observable<T> timeout(Func0<? extends Observable<U>> firstTimeoutSelector,
                                                 Func1<? super T,? extends Observable<V>> timeoutSelector,
                                                 Observable<? extends T> other)
        Returns an Observable that mirrors the source Observable, but switches to a fallback Observable if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables.

        Scheduler:
        This version of timeout operates by default on the immediate Scheduler.
        Type Parameters:
        U - the first timeout value type (ignored)
        V - the subsequent timeout value type (ignored)
        Parameters:
        firstTimeoutSelector - a function that returns an Observable which determines the timeout window for the first source item
        timeoutSelector - a function that returns an Observable for each item emitted by the source Observable and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequence
        other - the fallback Observable to switch to if the source Observable times out
        Returns:
        an Observable that mirrors the source Observable, but switches to the other Observable if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by the timeout selectors
        Throws:
        NullPointerException - if timeoutSelector is null
        See Also:
        RxJava wiki: timeout
      • timeout

        public final <V> Observable<T> timeout(Func1<? super T,? extends Observable<V>> timeoutSelector)
        Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item.

        Note: The arrival of the first source item is never timed out.

        Scheduler:
        This version of timeout operates by default on the immediate Scheduler.
        Type Parameters:
        V - the timeout value type (ignored)
        Parameters:
        timeoutSelector - a function that returns an observable for each item emitted by the source Observable and that determines the timeout window for the subsequent item
        Returns:
        an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if an item emitted by the source Observable takes longer to arrive than the time window defined by the selector for the previously emitted item
        See Also:
        RxJava wiki: timeout
      • timeout

        public final <V> Observable<T> timeout(Func1<? super T,? extends Observable<V>> timeoutSelector,
                                               Observable<? extends T> other)
        Returns an Observable that mirrors the source Observable, but that switches to a fallback Observable if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item.

        Note: The arrival of the first source item is never timed out.

        Scheduler:
        This version of timeout operates by default on the immediate Scheduler.
        Type Parameters:
        V - the timeout value type (ignored)
        Parameters:
        timeoutSelector - a function that returns an Observable, for each item emitted by the source Observable, that determines the timeout window for the subsequent item
        other - the fallback Observable to switch to if the source Observable times out
        Returns:
        an Observable that mirrors the source Observable, but switches to mirroring a fallback Observable if an item emitted by the source Observable takes longer to arrive than the time window defined by the selector for the previously emitted item
        See Also:
        RxJava wiki: timeout
      • timeout

        public final Observable<T> timeout(long timeout,
                                           TimeUnit timeUnit)
        Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Observable terminates and notifies observers of a TimeoutException.

        Scheduler:
        This version of timeout operates by default on the computation Scheduler.
        Parameters:
        timeout - maximum duration between emitted items before a timeout occurs
        timeUnit - the unit of time that applies to the timeout argument.
        Returns:
        the source Observable modified to notify observers of a TimeoutException in case of a timeout
        See Also:
        RxJava wiki: timeout
      • timeout

        public final Observable<T> timeout(long timeout,
                                           TimeUnit timeUnit,
                                           Observable<? extends T> other)
        Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Observable begins instead to mirror a fallback Observable.

        Scheduler:
        This version of timeout operates by default on the computation Scheduler.
        Parameters:
        timeout - maximum duration between items before a timeout occurs
        timeUnit - the unit of time that applies to the timeout argument
        other - the fallback Observable to use in case of a timeout
        Returns:
        the source Observable modified to switch to the fallback Observable in case of a timeout
        See Also:
        RxJava wiki: timeout
      • timeout

        public final Observable<T> timeout(long timeout,
                                           TimeUnit timeUnit,
                                           Observable<? extends T> other,
                                           Scheduler scheduler)
        Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item using a specified Scheduler. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Observable begins instead to mirror a fallback Observable.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timeout - maximum duration between items before a timeout occurs
        timeUnit - the unit of time that applies to the timeout argument
        other - the Observable to use as the fallback in case of a timeout
        scheduler - the Scheduler to run the timeout timers on
        Returns:
        the source Observable modified so that it will switch to the fallback Observable in case of a timeout
        See Also:
        RxJava wiki: timeout
      • timeout

        public final Observable<T> timeout(long timeout,
                                           TimeUnit timeUnit,
                                           Scheduler scheduler)
        Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item, where this policy is governed on a specified Scheduler. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Observable terminates and notifies observers of a TimeoutException.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timeout - maximum duration between items before a timeout occurs
        timeUnit - the unit of time that applies to the timeout argument
        scheduler - the Scheduler to run the timeout timers on
        Returns:
        the source Observable modified to notify observers of a TimeoutException in case of a timeout
        See Also:
        RxJava wiki: timeout
      • timestamp

        public final Observable<Timestamped<T>> timestamp()
        Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object.

        Scheduler:
        timestamp operates by default on the immediate Scheduler.
        Returns:
        an Observable that emits timestamped items from the source Observable
        See Also:
        RxJava wiki: timestamp
      • timestamp

        public final Observable<Timestamped<T>> timestamp(Scheduler scheduler)
        Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object whose timestamps are provided by a specified Scheduler.

        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        scheduler - the Scheduler to use as a time source
        Returns:
        an Observable that emits timestamped items from the source Observable with timestamps provided by the scheduler
        See Also:
        RxJava wiki: timestamp
      • toList

        public final Observable<List<T>> toList()
        Returns an Observable that emits a single item, a list composed of all the items emitted by the source Observable.

        Normally, an Observable that returns multiple items will do so by invoking its Observer's onNext method for each such item. You can change this behavior, instructing the Observable to compose a list of all of these items and then to invoke the Observer's onNext function once, passing it the entire list, by calling the Observable's toList method prior to calling its subscribe() method.

        Be careful not to use this operator on Observables that emit infinite or very large numbers of items, as you do not have the option to unsubscribe.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toList does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a single item: a List containing all of the items emitted by the source Observable
        See Also:
        RxJava wiki: toList
      • toMap

        public final <K> Observable<Map<K,T>> toMap(Func1<? super T,? extends K> keySelector)
        Returns an Observable that emits a single HashMap containing all items emitted by the source Observable, mapped by the keys returned by a specified keySelector function.

        If more than one source item maps to the same key, the HashMap will contain the latest of those items.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts the key from a source item to be used in the HashMap
        Returns:
        an Observable that emits a single item: a HashMap containing the mapped items from the source Observable
        See Also:
        RxJava wiki: toMap
      • toMap

        public final <K,V> Observable<Map<K,V>> toMap(Func1<? super T,? extends K> keySelector,
                                                      Func1<? super T,? extends V> valueSelector)
        Returns an Observable that emits a single HashMap containing values corresponding to items emitted by the source Observable, mapped by the keys returned by a specified keySelector function.

        If more than one source item maps to the same key, the HashMap will contain a single entry that corresponds to the latest of those items.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts the key from a source item to be used in the HashMap
        valueSelector - the function that extracts the value from a source item to be used in the HashMap
        Returns:
        an Observable that emits a single item: a HashMap containing the mapped items from the source Observable
        See Also:
        RxJava wiki: toMap
      • toMap

        public final <K,V> Observable<Map<K,V>> toMap(Func1<? super T,? extends K> keySelector,
                                                      Func1<? super T,? extends V> valueSelector,
                                                      Func0<? extends Map<K,V>> mapFactory)
        Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains keys and values extracted from the items emitted by the source Observable.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts the key from a source item to be used in the Map
        valueSelector - the function that extracts the value from the source items to be used as value in the Map
        mapFactory - the function that returns a Map instance to be used
        Returns:
        an Observable that emits a single item: a Map that contains the mapped items emitted by the source Observable
        See Also:
        RxJava wiki: toMap
      • toMultimap

        public final <K> Observable<Map<K,Collection<T>>> toMultimap(Func1<? super T,? extends K> keySelector)
        Returns an Observable that emits a single HashMap that contains an ArrayList of items emitted by the source Observable keyed by a specified keySelector function.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMultiMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts the key from the source items to be used as key in the HashMap
        Returns:
        an Observable that emits a single item: a HashMap that contains an ArrayList of items mapped from the source Observable
        See Also:
        RxJava wiki: toMap
      • toMultimap

        public final <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector,
                                                                       Func1<? super T,? extends V> valueSelector)
        Returns an Observable that emits a single HashMap that contains an ArrayList of values extracted by a specified valueSelector function from items emitted by the source Observable, keyed by a specified keySelector function.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMultiMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts a key from the source items to be used as key in the HashMap
        valueSelector - the function that extracts a value from the source items to be used as value in the HashMap
        Returns:
        an Observable that emits a single item: a HashMap that contains an ArrayList of items mapped from the source Observable
        See Also:
        RxJava wiki: toMap
      • toMultimap

        public final <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector,
                                                                       Func1<? super T,? extends V> valueSelector,
                                                                       Func0<? extends Map<K,Collection<V>>> mapFactory)
        Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains an ArrayList of values, extracted by a specified valueSelector function from items emitted by the source Observable and keyed by the keySelector function.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMultiMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts a key from the source items to be used as the key in the Map
        valueSelector - the function that extracts a value from the source items to be used as the value in the Map
        mapFactory - the function that returns a Map instance to be used
        Returns:
        an Observable that emits a single item: a Map that contains a list items mapped from the source Observable
        See Also:
        RxJava wiki: toMap
      • toMultimap

        public final <K,V> Observable<Map<K,Collection<V>>> toMultimap(Func1<? super T,? extends K> keySelector,
                                                                       Func1<? super T,? extends V> valueSelector,
                                                                       Func0<? extends Map<K,Collection<V>>> mapFactory,
                                                                       Func1<? super K,? extends Collection<V>> collectionFactory)
        Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains a custom collection of values, extracted by a specified valueSelector function from items emitted by the source Observable, and keyed by the keySelector function.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toMultiMap does not operate by default on a particular Scheduler.
        Parameters:
        keySelector - the function that extracts a key from the source items to be used as the key in the Map
        valueSelector - the function that extracts a value from the source items to be used as the value in the Map
        mapFactory - the function that returns a Map instance to be used
        collectionFactory - the function that returns a Collection instance for a particular key to be used in the Map
        Returns:
        an Observable that emits a single item: a Map that contains the collection of mapped items from the source Observable
        See Also:
        RxJava wiki: toMap
      • toSortedList

        public final Observable<List<T>> toSortedList()
        Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order. Each item emitted by the Observable must implement Comparable with respect to all other items in the sequence.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toSortedList does not operate by default on a particular Scheduler.
        Returns:
        an Observable that emits a list that contains the items emitted by the source Observable in sorted order
        Throws:
        ClassCastException - if any item emitted by the Observable does not implement Comparable with respect to all other items emitted by the Observable
        See Also:
        RxJava wiki: toSortedList
      • toSortedList

        public final Observable<List<T>> toSortedList(Func2<? super T,? super T,Integer> sortFunction)
        Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order based on a specified comparison function.

        Backpressure Support:
        This operator does not support backpressure as by intent it is requesting and buffering everything.
        Scheduler:
        toSortedList does not operate by default on a particular Scheduler.
        Parameters:
        sortFunction - a function that compares two items emitted by the source Observable and returns an Integer that indicates their sort order
        Returns:
        an Observable that emits a list that contains the items emitted by the source Observable in sorted order
        See Also:
        RxJava wiki: toSortedList
      • unsubscribeOn

        public final Observable<T> unsubscribeOn(Scheduler scheduler)
        Modifies the source Observable so that subscribers will unsubscribe from it on a specified Scheduler.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        scheduler - the Scheduler to perform unsubscription actions on
        Returns:
        the source Observable modified so that its unsubscriptions happen on the specified Scheduler
      • window

        public final <TClosing> Observable<Observable<T>> window(Func0<? extends Observable<? extends TClosing>> closingSelector)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows. It emits the current window and opens a new one whenever the Observable produced by the specified closingSelector emits an item.

        Backpressure Support:
        This operator does not support backpressure as it uses the closingSelector to control data flow.
        Scheduler:
        This version of window does not operate by default on a particular Scheduler.
        Parameters:
        closingSelector - a Func0 that returns an Observable that governs the boundary between windows. When this Observable emits an item, window emits the current window and begins a new one.
        Returns:
        an Observable that emits connected, non-overlapping windows of items from the source Observable whenever closingSelector emits an item
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(int count)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows, each containing count items. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses count to control data flow.
        Scheduler:
        This version of window does not operate by default on a particular Scheduler.
        Parameters:
        count - the maximum size of each window before it should be emitted
        Returns:
        an Observable that emits connected, non-overlapping windows, each containing at most count items from the source Observable
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(int count,
                                                      int skip)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits windows every skip items, each containing no more than count items. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses count to control data flow.
        Scheduler:
        This version of window does not operate by default on a particular Scheduler.
        Parameters:
        count - the maximum size of each window before it should be emitted
        skip - how many items need to be skipped before starting a new window. Note that if skip and count are equal this is the same operation as window(int).
        Returns:
        an Observable that emits windows every skip items containing at most count items from the source Observable
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      long timeshift,
                                                      TimeUnit unit)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable starts a new window periodically, as determined by the timeshift argument. It emits each window after a fixed timespan, specified by the timespan argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        This version of window operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each window collects items before it should be emitted
        timeshift - the period of time after which a new window will be created
        unit - the unit of time that applies to the timespan and timeshift arguments
        Returns:
        an Observable that emits new windows periodically as a fixed timespan elapses
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      long timeshift,
                                                      TimeUnit unit,
                                                      Scheduler scheduler)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable starts a new window periodically, as determined by the timeshift argument. It emits each window after a fixed timespan, specified by the timespan argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each window collects items before it should be emitted
        timeshift - the period of time after which a new window will be created
        unit - the unit of time that applies to the timespan and timeshift arguments
        scheduler - the Scheduler to use when determining the end and start of a window
        Returns:
        an Observable that emits new windows periodically as a fixed timespan elapses
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      long timeshift,
                                                      TimeUnit unit,
                                                      int count,
                                                      Scheduler scheduler)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable starts a new window periodically, as determined by the timeshift argument or a maximum size as specified by the count argument (whichever is reached first). It emits each window after a fixed timespan, specified by the timespan argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each window collects items before it should be emitted
        timeshift - the period of time after which a new window will be created
        unit - the unit of time that applies to the timespan and timeshift arguments
        count - the maximum size of each window before it should be emitted
        scheduler - the Scheduler to use when determining the end and start of a window
        Returns:
        an Observable that emits new windows periodically as a fixed timespan elapses
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      TimeUnit unit)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows, each of a fixed duration specified by the timespan argument. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        This version of window operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each window collects items before it should be emitted and replaced with a new window
        unit - the unit of time that applies to the timespan argument
        Returns:
        an Observable that emits connected, non-overlapping windows represending items emitted by the source Observable during fixed, consecutive durations
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      TimeUnit unit,
                                                      int count)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows, each of a fixed duration as specified by the timespan argument or a maximum size as specified by the count argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        This version of window operates by default on the computation Scheduler.
        Parameters:
        timespan - the period of time each window collects items before it should be emitted and replaced with a new window
        unit - the unit of time that applies to the timespan argument
        count - the maximum size of each window before it should be emitted
        Returns:
        an Observable that emits connected, non-overlapping windows of items from the source Observable that were emitted during a fixed duration of time or when the window has reached maximum capacity (whichever occurs first)
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      TimeUnit unit,
                                                      int count,
                                                      Scheduler scheduler)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows, each of a fixed duration specified by the timespan argument or a maximum size specified by the count argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each window collects items before it should be emitted and replaced with a new window
        unit - the unit of time which applies to the timespan argument
        count - the maximum size of each window before it should be emitted
        scheduler - the Scheduler to use when determining the end and start of a window
        Returns:
        an Observable that emits connected, non-overlapping windows of items from the source Observable that were emitted during a fixed duration of time or when the window has reached maximum capacity (whichever occurs first)
        See Also:
        RxJava wiki: window
      • window

        public final Observable<Observable<T>> window(long timespan,
                                                      TimeUnit unit,
                                                      Scheduler scheduler)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits connected, non-overlapping windows, each of a fixed duration as specified by the timespan argument. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses time to control data flow.
        Scheduler:
        you specify which Scheduler this operator will use
        Parameters:
        timespan - the period of time each window collects items before it should be emitted and replaced with a new window
        unit - the unit of time which applies to the timespan argument
        scheduler - the Scheduler to use when determining the end and start of a window
        Returns:
        an Observable that emits connected, non-overlapping windows containing items emitted by the source Observable within a fixed duration
        See Also:
        RxJava wiki: window
      • window

        public final <TOpening,TClosing> Observable<Observable<T>> window(Observable<? extends TOpening> windowOpenings,
                                                                          Func1<? super TOpening,? extends Observable<? extends TClosing>> closingSelector)
        Returns an Observable that emits windows of items it collects from the source Observable. The resulting Observable emits windows that contain those items emitted by the source Observable between the time when the windowOpenings Observable emits an item and when the Observable returned by closingSelector emits an item.

        Backpressure Support:
        This operator does not support backpressure as it uses Observables to control data flow.
        Scheduler:
        This version of window does not operate by default on a particular Scheduler.
        Parameters:
        windowOpenings - an Observable that, when it emits an item, causes another window to be created
        closingSelector - a Func1 that produces an Observable for every window created. When this Observable emits an item, the associated window is closed and emitted
        Returns:
        an Observable that emits windows of items emitted by the source Observable that are governed by the specified window-governing Observables
        See Also:
        RxJava wiki: window
      • window

        public final <U> Observable<Observable<T>> window(Observable<U> boundary)
        Returns an Observable that emits non-overlapping windows of items it collects from the source Observable where the boundary of each window is determined by the items emitted from a specified boundary-governing Observable.

        Backpressure Support:
        This operator does not support backpressure as it uses a boundary Observable to control data flow.
        Scheduler:
        This version of window does not operate by default on a particular Scheduler.
        Type Parameters:
        U - the window element type (ignored)
        Parameters:
        boundary - an Observable whose emitted items close and open windows
        Returns:
        an Observable that emits non-overlapping windows of items it collects from the source Observable where the boundary of each window is determined by the items emitted from the boundary Observable
        See Also:
        RxJava wiki: window
      • zipWith

        public final <T2,R> Observable<R> zipWith(Iterable<? extends T2> other,
                                                  Func2<? super T,? super T2,? extends R> zipFunction)
        Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and a specified Iterable sequence.

        Note that the other Iterable is evaluated as items are observed from the source Observable; it is not pre-consumed. This allows you to zip infinite streams on either side.

        Scheduler:
        zipWith does not operate by default on a particular Scheduler.
        Type Parameters:
        T2 - the type of items in the other Iterable
        R - the type of items emitted by the resulting Observable
        Parameters:
        other - the Iterable sequence
        zipFunction - a function that combines the pairs of items from the Observable and the Iterable to generate the items to be emitted by the resulting Observable
        Returns:
        an Observable that pairs up values from the source Observable and the other Iterable sequence and emits the results of zipFunction applied to these pairs
        See Also:
        RxJava wiki: zip
      • zipWith

        public final <T2,R> Observable<R> zipWith(Observable<? extends T2> other,
                                                  Func2<? super T,? super T2,? extends R> zipFunction)
        Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and another specified Observable.

        Scheduler:
        zipWith does not operate by default on a particular Scheduler.
        Type Parameters:
        T2 - the type of items emitted by the other Observable
        R - the type of items emitted by the resulting Observable
        Parameters:
        other - the other Observable
        zipFunction - a function that combines the pairs of items from the two Observables to generate the items to be emitted by the resulting Observable
        Returns:
        an Observable that pairs up values from the source Observable and the other Observable and emits the results of zipFunction applied to these pairs
        See Also:
        RxJava wiki: zip