/** * Creates a new min-max priority queue with default settings: natural order, * no maximum size, no initial contents, and an initial expected size of 11. */ public static <E extends Comparable<E>> MinMaxPriorityQueue<E> create() { return new Builder<Comparable>(Ordering.natural()).create(); }
/** * Creates and returns a new builder, configured to build {@code * MinMaxPriorityQueue} instances sized appropriately to hold {@code * expectedSize} elements. */ public static Builder<Comparable> expectedSize(int expectedSize) { return new Builder<Comparable>(Ordering.natural()).expectedSize(expectedSize); }
/** * Creates and returns a new builder, configured to build {@code * MinMaxPriorityQueue} instances that are limited to {@code maximumSize} * elements. Each time a queue grows beyond this bound, it immediately * removes its greatest element (according to its comparator), which might be * the element that was just added. */ public static Builder<Comparable> maximumSize(int maximumSize) { return new Builder<Comparable>(Ordering.natural()).maximumSize(maximumSize); }
/** * Creates and returns a new builder, configured to build {@code * MinMaxPriorityQueue} instances that use {@code comparator} to determine the * least and greatest elements. */ public static <B> Builder<B> orderedBy(Comparator<B> comparator) { return new Builder<B>(comparator); }
/** * Creates a new min-max priority queue using natural order, no maximum size, * and initially containing the given elements. */ public static <E extends Comparable<E>> MinMaxPriorityQueue<E> create( Iterable<? extends E> initialContents) { return new Builder<E>(Ordering.<E>natural()).create(initialContents); }