Example usage for com.google.common.collect MinMaxPriorityQueue orderedBy

List of usage examples for com.google.common.collect MinMaxPriorityQueue orderedBy

Introduction

In this page you can find the example usage for com.google.common.collect MinMaxPriorityQueue orderedBy.

Prototype

public static <B> Builder<B> orderedBy(Comparator<B> comparator) 

Source Link

Document

Creates and returns a new builder, configured to build MinMaxPriorityQueue instances that use comparator to determine the least and greatest elements.

Usage

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);
}