@Override public Observable<Histogram> call(Observable<Histogram> window) { return window.reduce(distributionAggregator); } };
@Override public Observable<Integer> call(Observable<Integer> observedConcurrency) { return observedConcurrency.reduce(0, reduceToMax); } };
@Override public Observable<Histogram> call(Observable<Event> bucket) { return bucket.reduce(CachedValuesHistogram.getNewHistogram(), addValuesToBucket); } };
@Override public Observable<Bucket> call(Observable<Event> eventBucket) { return eventBucket.reduce(getEmptyBucketSummary(), appendRawEventToBucket); } };
}; return response.getContent() .reduce(new ByteArrayOutputStream(), accumulator) .map(ByteArrayOutputStream::toByteArray); };
@Override public void start() throws Exception { HttpClient client = vertx.createHttpClient(); HttpClientRequest req = client.request(HttpMethod.GET, 8080, "localhost", "/"); req.toObservable(). // Status code check and -> Observable<Buffer> flatMap(resp -> { if (resp.statusCode() != 200) { throw new RuntimeException("Wrong status code " + resp.statusCode()); } return Observable.just(Buffer.buffer()).mergeWith(resp.toObservable()); }). // Reduce all buffers in a single buffer reduce(Buffer::appendBuffer). // Turn in to a string map(buffer -> buffer.toString("UTF-8")). // Get a single buffer subscribe(data -> System.out.println("Server content " + data)); // End request req.end(); } }
@Override public int migrate( final int currentVersion, final ProgressObserver observer ) { final int migrationVersion = getMaxVersion(); observer.start(); connectionService.deDupeConnections( allApplicationsObservable.getData() ).reduce( 0l, ( count, deDuped ) -> { final long newCount = count + 1; /** * Update our progress observer */ if ( newCount % UPDATE_COUNT == 0 ) { logger.info( "De duped {} edges", newCount ); observer.update( migrationVersion, String.format( "De duped %d edges", newCount ) ); } return newCount; } ).doOnNext( total -> { logger.info( "Completed de-duping {} edges", total ); observer.complete(); } ).toBlocking().lastOrDefault( null ); //want this to run through all records return migrationVersion; }
/** * Tests that reduce emits */ @Test public void testReduceEmpty(){ final int result = Observable.range( 0, 100 ).filter( value -> value == -1 ).reduce( 0, ( integer, integer2 ) -> integer + 1 ).toBlocking().last(); assertEquals(0, result); }
}, 10 ) .reduce( new EntitySetImpl( entityIds.size() ), ( entitySet, rows ) -> { final Iterator<Row<ScopedRowKey<CollectionPrefixedKey<Id>>, UUID>> latestEntityColumns = rows.iterator();
/** * Retrieve the largest number. * * Use reduce to select the maximum value in a list of numbers. */ public Observable<Integer> exerciseReduce(Observable<Integer> nums) { return nums.reduce((max, item) -> { if (item > max) { return item; } else { return max; } }); }
Observable < Boolean > reduced = zipped.reduce(true, new Func2<Boolean, Boolean, Boolean>() { @Override public Boolean call(Boolean a, Boolean b) {
/** * Executes the update query immediately, blocking till completion and * returns total of counts of records affected. * * @return total of counts of records affected by update queries */ public int execute() { return count().reduce(0, TotalHolder.TOTAL).toBlocking().single(); }
/** * Retrieve the id, title, and smallest box art url for every video. * * Now let's try combining reduce() with our other functions to build more complex queries. * * This is a variation of the problem we solved earlier, where we retrieved the url of the boxart with a * width of 150px. This time we'll use reduce() instead of filter() to retrieve the _smallest_ box art in * the boxarts list. * * See Exercise 19 of ComposableListExercises */ public Observable<JSON> exerciseMovie(Observable<Movies> movies) { return movies.flatMap(ml -> { return ml.videos.<JSON> flatMap(v -> { return v.boxarts.reduce((max, box) -> { int maxSize = max.height * max.width; int boxSize = box.height * box.width; if (boxSize < maxSize) { return box; } else { return max; } }).map(maxBoxart -> { return json("id", v.id, "title", v.title, "boxart", maxBoxart.url); }); }); }); }
/** * Returns an {@link Observable} that is the result of running a sequence of * update commands (insert/update/delete, ddl) read from the given * {@link Observable} sequence. * * @param commands * @return */ public Observable<Integer> run(Observable<String> commands) { return commands.reduce(Observable.<Integer> empty(), new Func2<Observable<Integer>, String, Observable<Integer>>() { @Override public Observable<Integer> call(Observable<Integer> dep, String command) { return update(command).dependsOn(dep).count(); } }).flatMap(Functions.<Observable<Integer>> identity()); }
public static void main(String... args) { Observable.range(0, 10).reduce(new ArrayList<>(), (list, i) -> { list.add(i); return list; }).forEach(System.out::println); System.out.println("... vs ..."); Observable.range(0, 10).scan(new ArrayList<>(), (list, i) -> { list.add(i); return list; }).forEach(System.out::println); } }
private Rectangle calculateMaxView(RTree<T, S> tree) { return tree.entries().reduce(Optional.<Rectangle>absent(), new Func2<Optional<Rectangle>, Entry<T, S>, Optional<Rectangle>>() { @Override public Optional<Rectangle> call(Optional<Rectangle> r, Entry<T, S> entry) { if (r.isPresent()) return of(r.get().add(entry.geometry().mbr())); else return of(entry.geometry().mbr()); } }).toBlocking().single().or(rectangle(0, 0, 0, 0)); }
.groupBy(n -> n) .flatMap(g -> { return g.take(3).reduce((s, s2) -> s + s2); }).forEach(System.out::println);
private static <T> Observable<T> minMax(Observable<T> source, final Comparator<? super T> comparator, final long flag) { return source.reduce(new Func2<T, T, T>() { @Override public T call(T acc, T value) { if (flag * comparator.compare(acc, value) > 0) { return acc; } return value; } }); }
}) .reduce(new StreamState(), (state, playEvent) -> { System.out.println(" state: " + state + " event: " + playEvent.id + "-" + playEvent.session);