- java.lang.Object
-
- org.jgrapht.graph.guava.ElementOrder<V>
-
- All Implemented Interfaces:
java.io.Serializable
class ElementOrder<V> extends java.lang.Object implements java.io.SerializableHelper 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 Summary
Fields Modifier and Type Field Description private java.util.Comparator<V>comparatorprivate java.util.Map<V,java.lang.Long>indicesprivate longnextIdprivate static longserialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description privateElementOrder(java.util.Comparator<V> comparator, java.util.Map<V,java.lang.Long> indices)Create a new element order.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <V> ElementOrder<V>comparator(java.util.Comparator<V> comparator)Create an element order with a comparatorintcompare(V v, V u)Compare two elementsprivate longcomputeNextId(V vertex)static <V> ElementOrder<V>internal()Create an internal element order which maintains a map from elements to long values.Vmin(V v, V u)Get the minimum of two elements.static <V> ElementOrder<V>natural()Create an element order with the natural orderingvoidnotifyAddition(V v)Notify about a new element.voidnotifyRemoval(V v)Notify about an element being removed.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
comparator
private java.util.Comparator<V> comparator
-
indices
private java.util.Map<V,java.lang.Long> indices
-
nextId
private long nextId
-
-
Method Detail
-
comparator
public static <V> ElementOrder<V> comparator(java.util.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 elementu- second element- Returns:
- the value
0ifvis equal tou; a value less than0ifvis less thanu; and a value greater than0ifvis greater thanu.
-
min
public V min(V v, V u)
Get the minimum of two elements.- Parameters:
v- first elementu- 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)
-
-