Class ElementOrder<V>

java.lang.Object
org.jgrapht.graph.guava.ElementOrder<V>
All Implemented Interfaces:
Serializable

class ElementOrder<V> extends Object implements Serializable
Helper class to maintain a total order for a set of elements.

The user can choose between using a comparator, using the natural ordering of the elements or maintaining internally a mapping to long integers. In the latter case the user is also responsible for notifying this class whenever elements are removed, in order to cleanup any internal state. Construction of elements is performed in a lazy manner.

  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • comparator

      private Comparator<V> comparator
    • indices

      private Map<V,Long> indices
    • nextId

      private long nextId
  • Constructor Details

    • ElementOrder

      private ElementOrder(Comparator<V> comparator, Map<V,Long> indices)
      Create a new element order.
      Parameters:
      comparator - the comparator to use
      indices - internal map from elements to long indices
  • Method Details

    • comparator

      public static <V> ElementOrder<V> comparator(Comparator<V> comparator)
      Create an element order with a comparator
      Type Parameters:
      V - the element type
      Parameters:
      comparator - the comparator
      Returns:
      the element order
    • natural

      public static <V> ElementOrder<V> natural()
      Create an element order with the natural ordering
      Type Parameters:
      V - the element type
      Returns:
      the element order
    • internal

      public static <V> ElementOrder<V> internal()
      Create an internal element order which maintains a map from elements to long values.
      Type Parameters:
      V - the element type
      Returns:
      the element order
    • compare

      public int compare(V v, V u)
      Compare two elements
      Parameters:
      v - first element
      u - second element
      Returns:
      the value 0 if v is equal to u; a value less than 0 if v is less than u; and a value greater than 0 if v is greater than u.
    • min

      public V min(V v, V u)
      Get the minimum of two elements.
      Parameters:
      v - first element
      u - second element
      Returns:
      the minimum of two elements
    • notifyAddition

      public void notifyAddition(V v)
      Notify about a new element.
      Parameters:
      v - the element
    • notifyRemoval

      public void notifyRemoval(V v)
      Notify about an element being removed. This method only affects the case that an internal map to long integers is maintained.
      Parameters:
      v - the element
    • computeNextId

      private long computeNextId(V vertex)