List of usage examples for com.google.common.collect MinMaxPriorityQueue orderedBy
public static <B> Builder<B> orderedBy(Comparator<B> comparator)
From source file:org.polymap.rhei.batik.engine.cp.SolutionQueueBuilder.java
/** * * @param maxSize -1 signals that an unbound queue should be created. * @return Newly created solution queue. *///from w ww. j a v a 2 s . c o m public static <T extends ScoredSolution> Queue<T> create(int maxSize) { if (maxSize < 0) { return new PriorityQueue<T>(1024, Ordering.natural().reverse()); } else { return MinMaxPriorityQueue.orderedBy(Ordering.natural().reverse()).maximumSize(maxSize).create(); } }
From source file:com.github.davidmoten.rx.operators.SortedOutputQueue.java
@Override public Subscriber<? super T> call(final Subscriber<? super T> child) { final MinMaxPriorityQueue<T> q = MinMaxPriorityQueue.orderedBy(comparator).maximumSize(maximumSize) .create();/* w w w . ja va 2s . c om*/ return new Subscriber<T>(child) { @Override public void onCompleted() { T t; while ((t = q.removeFirst()) != null) { if (isUnsubscribed()) return; child.onNext(t); } if (isUnsubscribed()) return; child.onCompleted(); } @Override public void onError(Throwable t) { if (!isUnsubscribed()) child.onError(t); } @Override public void onNext(T t) { if (!isUnsubscribed()) q.add(t); } }; }
From source file:io.druid.server.coordinator.DruidCluster.java
public void add(ServerHolder serverHolder) { ImmutableDruidServer server = serverHolder.getServer(); MinMaxPriorityQueue<ServerHolder> tierServers = cluster.get(server.getTier()); if (tierServers == null) { tierServers = MinMaxPriorityQueue.orderedBy(Ordering.natural().reverse()).create(); cluster.put(server.getTier(), tierServers); }/*w w w . j a v a2 s. c o m*/ tierServers.add(serverHolder); }
From source file:io.druid.query.groupby.orderby.TopNSequence.java
public TopNSequence(final Sequence<T> input, final Ordering<T> ordering, final int limit) { super(new IteratorMaker<T, Iterator<T>>() { @Override/*from www . j a v a 2 s . c o m*/ public Iterator<T> make() { if (limit <= 0) { return Iterators.emptyIterator(); } // Materialize the topN values final MinMaxPriorityQueue<T> queue = MinMaxPriorityQueue.orderedBy(ordering).maximumSize(limit) .create(); input.accumulate(queue, new Accumulator<MinMaxPriorityQueue<T>, T>() { @Override public MinMaxPriorityQueue<T> accumulate(MinMaxPriorityQueue<T> theQueue, T row) { theQueue.offer(row); return theQueue; } }); // Now return them when asked return new Iterator<T>() { @Override public boolean hasNext() { return !queue.isEmpty(); } @Override public T next() { return queue.poll(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } @Override public void cleanup(Iterator<T> rowIterator) { // Nothing to do } }); }
From source file:io.druid.query.groupby.orderby.TopNSorter.java
/** * Sorts a list of rows and retain the top n items * @param items the collections of items to be sorted * @param n the number of items to be retained * @return Top n items that are sorted in the order specified when this instance is constructed. *///from w ww . j a va2 s . com public Iterable<T> toTopN(Iterable<T> items, int n) { if (n <= 0) { return ImmutableList.of(); } MinMaxPriorityQueue<T> queue = MinMaxPriorityQueue.orderedBy(ordering).maximumSize(n).create(items); return new OrderedPriorityQueueItems<T>(queue); }
From source file:org.apache.druid.query.groupby.orderby.TopNSequence.java
public TopNSequence(final Sequence<T> input, final Ordering<T> ordering, final int limit) { super(new IteratorMaker<T, Iterator<T>>() { @Override/*from w w w .j a v a2 s .co m*/ public Iterator<T> make() { if (limit <= 0) { return Collections.emptyIterator(); } // Materialize the topN values final MinMaxPriorityQueue<T> queue = MinMaxPriorityQueue.orderedBy(ordering).maximumSize(limit) .create(); input.accumulate(queue, new Accumulator<MinMaxPriorityQueue<T>, T>() { @Override public MinMaxPriorityQueue<T> accumulate(MinMaxPriorityQueue<T> theQueue, T row) { theQueue.offer(row); return theQueue; } }); // Now return them when asked return new Iterator<T>() { @Override public boolean hasNext() { return !queue.isEmpty(); } @Override public T next() { return queue.poll(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } @Override public void cleanup(Iterator<T> rowIterator) { // Nothing to do } }); }
From source file:com.metamx.druid.indexing.coordinator.scaling.ScalingStats.java
public ScalingStats(int capacity) { this.recentEvents = MinMaxPriorityQueue.orderedBy(comparator).maximumSize(capacity).create(); }
From source file:com.metamx.druid.master.DruidCluster.java
public void add(ServerHolder serverHolder) { DruidServer server = serverHolder.getServer(); MinMaxPriorityQueue<ServerHolder> tierServers = cluster.get(server.getTier()); if (tierServers == null) { tierServers = MinMaxPriorityQueue.orderedBy(Ordering.natural().reverse()).create(); cluster.put(server.getTier(), tierServers); }/*www . java 2 s. c om*/ tierServers.add(serverHolder); }
From source file:io.druid.indexing.overlord.scaling.ScalingStats.java
public ScalingStats(int capacity) { if (capacity == 0) { this.recentEvents = MinMaxPriorityQueue.orderedBy(comparator).create(); } else {/*w w w . j a v a2 s . c o m*/ this.recentEvents = MinMaxPriorityQueue.orderedBy(comparator).maximumSize(capacity).create(); } }
From source file:com.davidbracewell.ml.classification.lazy.SparseKNN.java
@Override protected ClassificationResult classifyImpl(Instance instance) { final MinMaxPriorityQueue<Pair<Double, Double>> neighbors = MinMaxPriorityQueue .orderedBy(Ordering.from(Sorting.<Double, Double>mapEntryComparator(false, true))).maximumSize(K) .create();/*from w w w . j a va 2 s. c om*/ for (Instance inst : index.query(instance)) { double distance = distanceMeasure.calculate(inst, instance, VectorMap.VALID_VALUES.FINITE); neighbors.add(Pair.of(inst.getTargetValue(), distance)); } double[] p = new double[getTargetFeature().alphabetSize()]; for (Pair<Double, Double> pair : neighbors) { p[pair.getFirst().intValue()] += 1d / (pair.getSecond() + 0.00000001); } return new ClassificationResult(getTargetFeature(), p); }