Interface PriorityQueue<Priority extends Comparable<Priority>,Item>

Type Parameters:
Priority - the priority type
Item - the item type
All Superinterfaces:
Container<PriorityQueueItem<Priority,Item>>, Iterable<PriorityQueueItem<Priority,Item>>
All Known Implementing Classes:
ArrayPriorityQueue, ArrayPriorityQueue, BinaryHeapPriorityQueue, BinaryHeapPriorityQueue, SortedArrayPriorityQueue, SortedArrayPriorityQueue

public interface PriorityQueue<Priority extends Comparable<Priority>,Item> extends Container<PriorityQueueItem<Priority,Item>>
A priority queue.
  • Method Details

    • max

      Get the item with the greatest priority.
      Returns:
      the maximum priority item, or null if empty
    • insert

      void insert(PriorityQueueItem<Priority,Item> item)
      Insert the given prioritised item.
      Parameters:
      item - the prioritised item
    • insert

      default void insert(Priority priority, Item item)
      Insert the given prioritised item.
      Parameters:
      priority - the priority
      item - the item
    • removeMax

      Remove the item with the greatest priority.
      Returns:
      the maximum priority item, or null if empty
    • items

      Get a forward iterable that yields each prioritised item once.

      The items are iterated over in max-to-min order (by priority).

      Specified by:
      items in interface Container<Priority extends Comparable<Priority>>
      Returns:
      an iterable over the prioritised items
    • reversed

      Get a reverse iterable that yields each prioritised item once.

      The items are iterated over in min-to-max order (by priority).

      Returns:
      an iterable over the prioritised items
    • itemsOnly

      default Iterable<Item> itemsOnly()
      Get a reverse iterable that yields each item once.

      The items are iterated over in max-to-min order (by priority).

      Returns:
      an iterable over just the items (not the priorities)
    • reversedItemsOnly

      default Iterable<Item> reversedItemsOnly()
      Get a reverse iterable that yields each item once.

      The items are iterated over in min-to-max order (by priority).

      Returns:
      an iterable over just the items (not the priorities)