src/main/java/io/reactivex/Maybe.java
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T, R> Maybe<R> zipArray(Function<? super Object[], ? extends R> zipper,
            MaybeSource<? extends T>... sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        if (sources.length == 0) {
            return empty();
        }
        ObjectHelper.requireNonNull(zipper, "zipper is null");
        return RxJavaPlugins.onAssembly(new MaybeZipArray<T, R>(sources, zipper));
    }
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T, R> Maybe<R> zipArray(Function<? super Object[], ? extends R> zipper,
            MaybeSource<? extends T>... sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        if (sources.length == 0) {
            return empty();
        }
        ObjectHelper.requireNonNull(zipper, "zipper is null");
        return RxJavaPlugins.onAssembly(new MaybeZipArray<T, R>(sources, zipper));
    }
@ CheckReturnValue @ NonNull @ SchedulerSupport ( SchedulerSupport . NONE ) public static < T , R > Maybe < R > zipArray ( Function < ? super Object [ ] , ? extends R > zipper , MaybeSource < ? extends T > ... sources ) { ObjectHelper . requireNonNull ( sources , "sources is null" ) ; if ( sources . length == 0 ) { return empty ( ) ; } ObjectHelper . requireNonNull ( zipper , "zipper is null" ) ; return RxJavaPlugins . onAssembly ( new MaybeZipArray < T , R > ( sources , zipper ) ) ; }
Returns a Maybe that emits the results of a specified combiner function applied to combinations of
items emitted, in sequence, by an array of other MaybeSources.
<p>
Note on method signature: since Java doesn't allow creating a generic array with {@code new T[]}, the
implementation of this operator has to create an {@code Object[]} instead. Unfortunately, a
{@code Function<Integer[], R>} passed to the method would trigger a {@code ClassCastException}.

<p>
<img width="640" height="380" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/zip.png" alt="">
<p>This operator terminates eagerly if any of the source MaybeSources signal an onError or onComplete. This
also means it is possible some sources may not get subscribed to at all.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code zipArray} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <T> the common element type
@param <R> the result type
@param sources
an array of source MaybeSources
@param zipper
a function that, when applied to an item emitted by each of the source MaybeSources, results in
an item that will be emitted by the resulting MaybeSource
@return a Maybe that emits the zipped results
@see <a href="http://reactivex.io/documentation/operators/zip.html">ReactiveX operators documentation: Zip</a>
Returns a Maybe that emits the results of a specified combiner function applied to combinations of items emitted in sequence by an array of other MaybeSources . <p > Note on method signature : since Java doesn t allow creating a generic array with { @code new T [] } the implementation of this operator has to create an { @code Object [] } instead . Unfortunately a { @code Function<Integer [] R > } passed to the method would trigger a { @code ClassCastException } .