java.lang.Object
org.jgrapht.graph.guava.ElementOrder<V>
- All Implemented Interfaces:
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 Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
ElementOrder
(Comparator<V> comparator, Map<V, Long> indices) Create a new element order. -
Method Summary
Modifier and TypeMethodDescriptionstatic <V> ElementOrder
<V> comparator
(Comparator<V> comparator) Create an element order with a comparatorint
Compare two elementsprivate long
computeNextId
(V vertex) static <V> ElementOrder
<V> internal()
Create an internal element order which maintains a map from elements to long values.Get the minimum of two elements.static <V> ElementOrder
<V> natural()
Create an element order with the natural orderingvoid
notifyAddition
(V v) Notify about a new element.void
notifyRemoval
(V v) Notify about an element being removed.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
comparator
-
indices
-
nextId
private long nextId
-
-
Constructor Details
-
ElementOrder
Create a new element order.- Parameters:
comparator
- the comparator to useindices
- internal map from elements to long indices
-
-
Method Details
-
comparator
Create an element order with a comparator- Type Parameters:
V
- the element type- Parameters:
comparator
- the comparator- Returns:
- the element order
-
natural
Create an element order with the natural ordering- Type Parameters:
V
- the element type- Returns:
- the element order
-
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
Compare two elements- Parameters:
v
- first elementu
- second element- Returns:
- the value
0
ifv
is equal tou
; a value less than0
ifv
is less thanu
; and a value greater than0
ifv
is greater thanu
.
-
min
Get the minimum of two elements.- Parameters:
v
- first elementu
- second element- Returns:
- the minimum of two elements
-
notifyAddition
Notify about a new element.- Parameters:
v
- the element
-
notifyRemoval
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
-