Class ElementOrder<T>

java.lang.Object
com.google.common.graph.ElementOrder<T>

@Beta @Immutable public final class ElementOrder<T> extends Object
Used to represent the order of elements in a data structure that supports different options for iteration order guarantees.

Example usage:


 MutableGraph<Integer> graph =
     GraphBuilder.directed().nodeOrder(ElementOrder.<Integer>natural()).build();
 
Since:
20.0
Author:
Joshua O'Madadhain
  • Method Details

    • unordered

      public static <S> ElementOrder<S> unordered()
      Returns an instance which specifies that no ordering is guaranteed.
    • stable

      public static <S> ElementOrder<S> stable()
      Returns an instance which specifies that ordering is guaranteed to be always be the same across iterations, and across releases. Some methods may have stronger guarantees.

      This instance is only useful in combination with incidentEdgeOrder, e.g. graphBuilder.incidentEdgeOrder(ElementOrder.stable()).

      In combination with incidentEdgeOrder

      incidentEdgeOrder(ElementOrder.stable()) guarantees the ordering of the returned collections of the following methods:

      • For Graph and ValueGraph:
        • edges(): Stable order
        • adjacentNodes(node): Connecting edge insertion order
        • predecessors(node): Connecting edge insertion order
        • successors(node): Connecting edge insertion order
        • incidentEdges(node): Edge insertion order
      • For Network:
        • adjacentNodes(node): Stable order
        • predecessors(node): Connecting edge insertion order
        • successors(node): Connecting edge insertion order
        • incidentEdges(node): Stable order
        • inEdges(node): Edge insertion order
        • outEdges(node): Edge insertion order
        • adjacentEdges(edge): Stable order
        • edgesConnecting(nodeU, nodeV): Edge insertion order
      Since:
      29.0
    • insertion

      public static <S> ElementOrder<S> insertion()
      Returns an instance which specifies that insertion ordering is guaranteed.
    • natural

      public static <S extends Comparable<? super S>> ElementOrder<S> natural()
      Returns an instance which specifies that the natural ordering of the elements is guaranteed.
    • sorted

      public static <S> ElementOrder<S> sorted(Comparator<S> comparator)
      Returns an instance which specifies that the ordering of the elements is guaranteed to be determined by comparator.
    • type

      Returns the type of ordering used.
    • comparator

      public Comparator<T> comparator()
      Returns the Comparator used.
      Throws:
      UnsupportedOperationException - if comparator is not defined
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object