## org.exist.util
Class Heap

    java.lang.Object
      org.exist.util.Heap

public class Heap
extends java.lang.Object

A heap-based priority queue, without any concurrency control (i.e., no blocking on empty/full states). This class provides the data structure mechanics for BoundedPriorityQueue.

The class currently uses a standard array-based heap, as described in, for example, Sedgewick's Algorithms text. All methods are fully synchronized. In the future, it may instead use structures permitting finer-grained locking.

[ Introduction to this package. ]

Constructor Summary
`Heap(int capacity)` Create a Heap with the given capacity, and relying on natural ordering.
`Heap(int capacity, java.util.Comparator cmp)` Create a Heap with the given initial capacity and comparator

Method Summary
`void` `clear()` remove all elements
`java.lang.Object` `extract()` Return and remove least element, or null if empty
`void` `insert(java.lang.Object x)` insert an element, resize if necessary
`java.lang.Object` `peek()` Return least element without removing it, or null if empty
`int` `size()` Return number of elements

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Heap

    public Heap(int capacity,
                java.util.Comparator cmp)
         throws java.lang.IllegalArgumentException

  Create a Heap with the given initial capacity and comparator

Throws:
  `java.lang.IllegalArgumentException` - if capacity less or equal to zero

### Heap

    public Heap(int capacity)

  Create a Heap with the given capacity, and relying on natural ordering.

Method Detail

### insert

    public void insert(java.lang.Object x)

  insert an element, resize if necessary

### extract

    public java.lang.Object extract()

  Return and remove least element, or null if empty

### peek

    public java.lang.Object peek()

  Return least element without removing it, or null if empty

### size

    public int size()

  Return number of elements

### clear

    public void clear()

  remove all elements

Copyright (C) Wolfgang Meier. All rights reserved.