public Observer<T> distinct() {
        dispatcher.append(new Dispatcher<Object>() {
            private Set<T> set = new HashSet<>();

            @Override
            public void onNext(final Object param) {
                if (downDispatcher != null && set.add((T) param)) {
                    downDispatcher.onNext(param);
                }
            }
        });

        return this;
    }
public Observer < T > distinct ( ) { dispatcher . append ( new Dispatcher < Object > ( ) { private Set < T > set = new HashSet < > ( ) ; @ Override public void onNext ( final Object param ) { if ( downDispatcher != null && set . add ( ( T ) param ) ) { downDispatcher . onNext ( param ) ; } } } ) ; return this ; }
@return