diff --git a/src/main/java/com/netflix/nfgraph/NFGraph.java b/src/main/java/com/netflix/nfgraph/NFGraph.java
index dc2fa4a..fe372d6 100644
--- a/src/main/java/com/netflix/nfgraph/NFGraph.java
+++ b/src/main/java/com/netflix/nfgraph/NFGraph.java
@@ -25,28 +25,28 @@
/**
* NFGraph
represents a directed graph and is the base class for the two flavors of NetflixGraph
* ({@link NFBuildGraph} and {@link NFCompressedGraph}). It defines the operations for retrieving connections
- * in the graph, given some node and property.
* * In the NetflixGraph library, each node in your graph is expected to be uniquely represented as a "type" and "ordinal". * Each "type" will be referred to by some String. An "ordinal", in this sense, is a number that uniquely defines the node * given its type. If a type of node has "n" instances, then each instance should be representable by some unique value * from 0 through (n-1). If nodes in the graph are represented as Objects externally to the NetflixGraph library, then * developers may find it helpful to use an {@link OrdinalMap} for each type to create and maintain a mapping between objects - * and their ordinals. The {@link OrdinalMap} has been optimized with this use case in mind.
+ * and their ordinals. The {@link OrdinalMap} has been optimized with this use case in mind.* - * Use of the NFGraph is expected to generally follow some lifecycle:
+ * Use of the NFGraph is expected to generally follow some lifecycle:*
* * In some cases, the location where the compact in-memory representation is necessary is the same as the location where this - * representation will be built. In these cases, steps (4) and (5) above will be omitted.
+ * representation will be built. In these cases, steps (4) and (5) above will be omitted.* - * If there will be a producer of this graph and one or more consumers, then your producer code will resemble:
+ * If there will be a producer of this graph and one or more consumers, then your producer code will resemble:* *
* {@code @@ -66,7 +66,7 @@ * } ** - * And your consumer code will resemble: + * And your consumer code will resemble:
* *
* {@code diff --git a/src/main/java/com/netflix/nfgraph/NFGraphModelHolder.java b/src/main/java/com/netflix/nfgraph/NFGraphModelHolder.java index 1659f71..3bb6ad9 100644 --- a/src/main/java/com/netflix/nfgraph/NFGraphModelHolder.java +++ b/src/main/java/com/netflix/nfgraph/NFGraphModelHolder.java @@ -22,14 +22,14 @@ import com.netflix.nfgraph.util.OrdinalMap; /** - *NFGraphModelHolder
maintains an ordering over the models in a given NFGraph. + *NFGraphModelHolder
maintains an ordering over the models in a given NFGraph.* * An {@link NFGraph} may contain one or more "connection models". A "connection model" is a grouping of the set of connections - * between nodes in the graph.
+ * between nodes in the graph.* * Connections added for a connection model will be visible only for that model. Use of multiple connection models will * add a minimum of one byte per model-specific connection set per node. As a result, this feature should be used only - * when the number of connection models is and will remain low.
+ * when the number of connection models is and will remain low.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/OrdinalIterator.java b/src/main/java/com/netflix/nfgraph/OrdinalIterator.java index d95f86f..8f26227 100644 --- a/src/main/java/com/netflix/nfgraph/OrdinalIterator.java +++ b/src/main/java/com/netflix/nfgraph/OrdinalIterator.java @@ -22,7 +22,7 @@ import com.netflix.nfgraph.compressed.HashSetOrdinalIterator; /** - *
+ *OrdinalIterator
is the interface used to iterate over a set of connections.OrdinalIterator
is the interface used to iterate over a set of connections.* * An
OrdinalIterator
may be obtained for a set of connections directly from an {@link NFGraph} or via an {@link OrdinalSet} * obtained from an {@link NFGraph}. @@ -50,7 +50,7 @@ public interface OrdinalIterator { public void reset(); /** - * Obtain a copy of thisOrdinalIterator. The returned OrdinalIterator
will be reset to the beginning of the set. + * Obtain a copy of thisOrdinalIterator
. The returnedOrdinalIterator
will be reset to the beginning of the set. */ public OrdinalIterator copy(); diff --git a/src/main/java/com/netflix/nfgraph/OrdinalSet.java b/src/main/java/com/netflix/nfgraph/OrdinalSet.java index 693a325..2d37222 100644 --- a/src/main/java/com/netflix/nfgraph/OrdinalSet.java +++ b/src/main/java/com/netflix/nfgraph/OrdinalSet.java @@ -26,7 +26,7 @@ import com.netflix.nfgraph.compressed.HashSetOrdinalSet; /** - *OrdinalSet
is the interface used to represent a set of connections. + *OrdinalSet
is the interface used to represent a set of connections.* * An
+ * this operation will have one of two performance characteristics:OrdinalSet
is obtained directly from an {@link NFGraph}. * @@ -37,19 +37,19 @@ public abstract class OrdinalSet { /** * Returnstrue
when the specified value is contained in this set. Depending on the implementation, - * this operation will have one of two performance characteristics:* - *
+ * this operation will have one of two performance characteristics:O(1)
for {@link HashSetOrdinalSet} and {@link BitSetOrdinalSet}
+ *O(1)
for {@link HashSetOrdinalSet} and {@link BitSetOrdinalSet}
*O(n)
for {@link CompactOrdinalSet} and {@link NFBuildGraphOrdinalSet} */ public abstract boolean contains(int value); /** * Returnstrue
when all specified values are contained in this set. Depending on the implementation, - * this operation will have one of two performance characteristics:* - *
+ * AnO(m)
for {@link HashSetOrdinalSet} and {@link BitSetOrdinalSet}, wherem
is the number of specified elements.
- *O(n)
for {@link CompactOrdinalSet}, wheren
is the number of elements in the set.
+ *O(m)
for {@link HashSetOrdinalSet} and {@link BitSetOrdinalSet}, wherem
is the number of specified elements.
+ *O(n)
for {@link CompactOrdinalSet}, wheren
is the number of elements in the set.
*O(n * m)
for {@link NFBuildGraphOrdinalSet}. */ public boolean containsAll(int... values) { diff --git a/src/main/java/com/netflix/nfgraph/build/NFBuildGraph.java b/src/main/java/com/netflix/nfgraph/build/NFBuildGraph.java index f7a7850..c662468 100644 --- a/src/main/java/com/netflix/nfgraph/build/NFBuildGraph.java +++ b/src/main/java/com/netflix/nfgraph/build/NFBuildGraph.java @@ -30,11 +30,11 @@ /** - * An NFBuildGraph is used to create a new graph. This representation of the graph data is not especially memory-efficient, - * and is intended to exist only for a short time while the {@link NFGraph} is being populated.NFBuildGraph
is used to create a new graph. This representation of the graph data is not especially memory-efficient, + * and is intended to exist only for a short time while the {@link NFGraph} is being populated.* * Once the graph is completely populated, it is expected that this
+ * read-only {@link NFCompressedGraph} via theNFBuildGraph
will be exchanged for a memory-efficient, - * read-only {@link NFCompressedGraph} via thecompress()
method.compress()
method.* * See {@link NFGraph} for an example of code which creates and populates an
+ * Add a connection model, identified by the parameterNFBuildGraph
* @@ -122,10 +122,10 @@ public void addConnection(NFBuildGraphNode fromNode, NFPropertySpec propertySpec } /** - * Add a connection model, identified by the parameterconnectionModel
to this graph.connectionModel
to this graph.* * Building the graph may be much more efficient if each connection model is added to the graph with this method - * prior to adding any connections.
+ * prior to adding any connections.* * This operation is not necessary, but may make building the graph more efficient. * diff --git a/src/main/java/com/netflix/nfgraph/compressed/BitSetOrdinalSet.java b/src/main/java/com/netflix/nfgraph/compressed/BitSetOrdinalSet.java index 9496584..df24a9d 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/BitSetOrdinalSet.java +++ b/src/main/java/com/netflix/nfgraph/compressed/BitSetOrdinalSet.java @@ -24,13 +24,13 @@ import com.netflix.nfgraph.util.ByteArrayReader; /** - * An implementation of {@link OrdinalSet}, returned for connections represented as a bit set in an {@link NFCompressedGraph}.
+ * An implementation of {@link OrdinalSet}, returned for connections represented as a bit set in an {@link NFCompressedGraph}.* * A bit set representation contains a single bit per ordinal in the type to which the connections point. If the bit at the - * position for a given ordinal is set, then there is a connection to that ordinal in this set.
+ * position for a given ordinal is set, then there is a connection to that ordinal in this set.* * Because determining membership in a set requires only checking whether the bit at a given position is set,
+ * is ancontains()
- * is anO(1)
operation.O(1)
operation.* * This representation will automatically be chosen for a set by the {@link NFCompressedGraphBuilder} when it requires fewer bytes than * the configured representation (either {@link NFPropertySpec#COMPACT} or {@link NFPropertySpec#HASH}). diff --git a/src/main/java/com/netflix/nfgraph/compressed/CompactOrdinalSet.java b/src/main/java/com/netflix/nfgraph/compressed/CompactOrdinalSet.java index 0d71679..6ef18be 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/CompactOrdinalSet.java +++ b/src/main/java/com/netflix/nfgraph/compressed/CompactOrdinalSet.java @@ -25,16 +25,16 @@ import com.netflix.nfgraph.util.ByteArrayReader; /** - * An implementation of {@link OrdinalSet}, returned for connections represented as variable-byte deltas in an {@link NFCompressedGraph}.
+ * An implementation of {@link OrdinalSet}, returned for connections represented as variable-byte deltas in an {@link NFCompressedGraph}.* * A variable-byte delta representation contains between one and five bytes per connection. - * The ordinals in the set are sorted ascending, then encoded as the difference between each ordinal and the last ordinal.
+ * The ordinals in the set are sorted ascending, then encoded as the difference between each ordinal and the last ordinal.* - * For example, the values [ 7, 11, 13, 21 ] will be encoded as [ 7, 4, 2, 8 ].
+ * For example, the values [ 7, 11, 13, 21 ] will be encoded as [ 7, 4, 2, 8 ].* - * This is done because smaller values can be represented in fewer bytes.
+ * This is done because smaller values can be represented in fewer bytes.* - * Because each value can only be derived using the previous value,
+ * Because each value can only be derived using the previous value,contains()
is anO(n)
operation.contains()
is anO(n)
operation.* * This representation for a connection set can be configured for an {@link NFPropertySpec} using {@link NFPropertySpec#COMPACT}. * diff --git a/src/main/java/com/netflix/nfgraph/compressed/HashSetOrdinalSet.java b/src/main/java/com/netflix/nfgraph/compressed/HashSetOrdinalSet.java index 465a14f..f839091 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/HashSetOrdinalSet.java +++ b/src/main/java/com/netflix/nfgraph/compressed/HashSetOrdinalSet.java @@ -24,17 +24,17 @@ import com.netflix.nfgraph.util.Mixer; /** - * An implementation of {@link OrdinalSet}, returned for connections represented as variable-byte hashed integer arrays in an {@link NFCompressedGraph}.
+ * An implementation of {@link OrdinalSet}, returned for connections represented as variable-byte hashed integer arrays in an {@link NFCompressedGraph}.* * A variable-byte hashed integer array representation contains between one and five bytes per connection. The ordinal for each - * connection is hashed into a byte array, then represented as a variant on the variable-byte integers used in the {@link CompactOrdinalSet}.
+ * connection is hashed into a byte array, then represented as a variant on the variable-byte integers used in the {@link CompactOrdinalSet}.* * The byte array can be thought of as a open-addressed hash table, with each byte representing a single bucket. Because * values may be represented in more than one byte, single values may spill over into multiple buckets. The beginning of the * value is indicated by an unset sign bit, and will be located at or after the bucket to which it is hashed. If the value's - * first bit is not located at the hashed position, it will be located in a position after the bucket with no empty buckets in between.
+ * first bit is not located at the hashed position, it will be located in a position after the bucket with no empty buckets in between.* - * This implementation provides
+ * This implementation providesO(1)
time forcontains()
, but is not as memory-efficient as a {@link CompactOrdinalSet}.O(1)
time forcontains()
, but is not as memory-efficient as a {@link CompactOrdinalSet}.* * This representation for a connection set can be configured for an {@link NFPropertySpec} using {@link NFPropertySpec#HASH}. * diff --git a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraph.java b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraph.java index 30aaca0..db7f685 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraph.java +++ b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraph.java @@ -42,7 +42,7 @@ /** * A read-only, memory-efficient implementation of an {@link NFGraph}. The connections for all nodes in the graph * are encoded into a single byte array. The encoding for each set will be specified as either a {@link CompactOrdinalSet} or - * {@link HashSetOrdinalSet}. If it is more efficient, the actual encoding will be a {@link BitSetOrdinalSet}.
+ * {@link HashSetOrdinalSet}. If it is more efficient, the actual encoding will be a {@link BitSetOrdinalSet}.* * The offsets into the byte array where connections for each node are encoded are held in the {@link NFCompressedGraphPointers}. */ diff --git a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphIntPointers.java b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphIntPointers.java index b8aa478..0d6ffac 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphIntPointers.java +++ b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphIntPointers.java @@ -23,10 +23,10 @@ import com.netflix.nfgraph.exception.NFGraphException; /** - * This class holds all of the offsets into the {@link NFCompressedGraph}'s byte array.
+ * This class holds all of the offsets into the {@link NFCompressedGraph}'s byte array.* * This class maintains a mapping of type name to int array. For a given type, the offset in the {@link NFCompressedGraph}'s byte array - * where the connections for a given node are encoded is equal to the value of the int array for the node's type at the index for the node's ordinal.
+ * where the connections for a given node are encoded is equal to the value of the int array for the node's type at the index for the node's ordinal.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphLongPointers.java b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphLongPointers.java index 6a63596..f5bddb4 100644 --- a/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphLongPointers.java +++ b/src/main/java/com/netflix/nfgraph/compressed/NFCompressedGraphLongPointers.java @@ -23,10 +23,10 @@ import com.netflix.nfgraph.exception.NFGraphException; /** - * This class holds all of the offsets into the {@link NFCompressedGraph}'s byte array.
+ * This class holds all of the offsets into the {@link NFCompressedGraph}'s byte array.* * This class maintains a mapping of type name to int array. For a given type, the offset in the {@link NFCompressedGraph}'s byte array - * where the connections for a given node are encoded is equal to the value of the int array for the node's type at the index for the node's ordinal.
+ * where the connections for a given node are encoded is equal to the value of the int array for the node's type at the index for the node's ordinal.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/compressor/BitSetPropertyBuilder.java b/src/main/java/com/netflix/nfgraph/compressor/BitSetPropertyBuilder.java index 0d2ff32..81d7c6c 100644 --- a/src/main/java/com/netflix/nfgraph/compressor/BitSetPropertyBuilder.java +++ b/src/main/java/com/netflix/nfgraph/compressor/BitSetPropertyBuilder.java @@ -25,7 +25,7 @@ import com.netflix.nfgraph.util.ByteArrayBuffer; /** - * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented with bit sets.
+ * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented with bit sets.* * It is unlikely that this class will need to be used externally. * diff --git a/src/main/java/com/netflix/nfgraph/compressor/CompactPropertyBuilder.java b/src/main/java/com/netflix/nfgraph/compressor/CompactPropertyBuilder.java index 6abbb02..0db13f4 100644 --- a/src/main/java/com/netflix/nfgraph/compressor/CompactPropertyBuilder.java +++ b/src/main/java/com/netflix/nfgraph/compressor/CompactPropertyBuilder.java @@ -24,7 +24,7 @@ import com.netflix.nfgraph.util.ByteArrayBuffer; /** - * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented as variable-byte deltas.
+ * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented as variable-byte deltas.* * It is unlikely that this class will need to be used externally. * diff --git a/src/main/java/com/netflix/nfgraph/compressor/HashedPropertyBuilder.java b/src/main/java/com/netflix/nfgraph/compressor/HashedPropertyBuilder.java index be8502a..1e5d4a6 100644 --- a/src/main/java/com/netflix/nfgraph/compressor/HashedPropertyBuilder.java +++ b/src/main/java/com/netflix/nfgraph/compressor/HashedPropertyBuilder.java @@ -26,7 +26,7 @@ import com.netflix.nfgraph.util.Mixer; /** - * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented as as variable-byte hashed integer arrays.
+ * This class is used by {@link NFCompressedGraphBuilder} to write sets of ordinals represented as as variable-byte hashed integer arrays.* * It is unlikely that this class will need to be used externally. * diff --git a/src/main/java/com/netflix/nfgraph/compressor/NFCompressedGraphBuilder.java b/src/main/java/com/netflix/nfgraph/compressor/NFCompressedGraphBuilder.java index a95a1aa..806d1f1 100644 --- a/src/main/java/com/netflix/nfgraph/compressor/NFCompressedGraphBuilder.java +++ b/src/main/java/com/netflix/nfgraph/compressor/NFCompressedGraphBuilder.java @@ -32,7 +32,7 @@ /** - *
+ *NFCompressedGraphBuilder
is used by {@link NFBuildGraph#compress()} to create an {@link NFCompressedGraph}.NFCompressedGraphBuilder
is used by {@link NFBuildGraph#compress()} to create an {@link NFCompressedGraph}.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphDeserializer.java b/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphDeserializer.java index 21d6194..1f1cb8d 100644 --- a/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphDeserializer.java +++ b/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphDeserializer.java @@ -33,7 +33,7 @@ import java.io.InputStream; /** - * This class is used by {@link NFCompressedGraph#readFrom(InputStream)}.
+ * This class is used by {@link NFCompressedGraph#readFrom(InputStream)}.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphSerializer.java b/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphSerializer.java index 28038f2..87f6a81 100644 --- a/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphSerializer.java +++ b/src/main/java/com/netflix/nfgraph/serializer/NFCompressedGraphSerializer.java @@ -30,7 +30,7 @@ import java.io.OutputStream; /** - * This class is used by {@link NFCompressedGraph#writeTo(OutputStream)}.
+ * This class is used by {@link NFCompressedGraph#writeTo(OutputStream)}.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/spec/NFGraphSpec.java b/src/main/java/com/netflix/nfgraph/spec/NFGraphSpec.java index 4dc4d75..84e3262 100644 --- a/src/main/java/com/netflix/nfgraph/spec/NFGraphSpec.java +++ b/src/main/java/com/netflix/nfgraph/spec/NFGraphSpec.java @@ -27,11 +27,11 @@ /** * An
+ * name to {@link NFNodeSpec}s.NFGraphSpec
defines the schema for a graph. It contains a mapping of node type - * name to {@link NFNodeSpec}s.* * The example code below will create two node types "a" and "b". An "a" node can be connected to "b" nodes * via the properties "a-to-one-b" and/or "a-to-many-b". A "b" node can be connected to "a" nodes via the property - * "b-to-many-a".
+ * "b-to-many-a".* *
* {@code diff --git a/src/main/java/com/netflix/nfgraph/spec/NFPropertySpec.java b/src/main/java/com/netflix/nfgraph/spec/NFPropertySpec.java index 979f8a5..706e7f9 100644 --- a/src/main/java/com/netflix/nfgraph/spec/NFPropertySpec.java +++ b/src/main/java/com/netflix/nfgraph/spec/NFPropertySpec.java @@ -23,11 +23,11 @@ import com.netflix.nfgraph.compressed.NFCompressedGraph; /** - * This class defines a specification for a single property. + * This class defines a specification for a single property.* - * The recommended interface for creating a property is to instantiate with the flag method below.
+ * The recommended interface for creating a property is to instantiate with the flag method below.* - * By default, an
+ * By default, anNFPropertySpec
is {@link #GLOBAL}, {@link #MULTIPLE}, and {@link #COMPACT}.NFPropertySpec
is {@link #GLOBAL}, {@link #MULTIPLE}, and {@link #COMPACT}.* *
* {@code @@ -92,7 +92,7 @@ public class NFPropertySpec { * * @param name the name of the property. * @param toNodeType the node type to which this property connects - * @param flags a bitwise-or of the various flags defined as constants in {@link NFPropertySpec}.
For example, a global, multiple, compact property would take the valueNFPropertySpec.GLOBAL | NFPropertySpec.MULTIPLE | NFPropertySpec.COMPACT
+ * @param flags a bitwise-or of the various flags defined as constants in {@link NFPropertySpec}.
For example, a global, multiple, compact property would take the valueNFPropertySpec.GLOBAL | NFPropertySpec.MULTIPLE | NFPropertySpec.COMPACT
* */ public NFPropertySpec(String name, String toNodeType, int flags) { diff --git a/src/main/java/com/netflix/nfgraph/util/ByteArrayBuffer.java b/src/main/java/com/netflix/nfgraph/util/ByteArrayBuffer.java index d449e5f..52f3230 100644 --- a/src/main/java/com/netflix/nfgraph/util/ByteArrayBuffer.java +++ b/src/main/java/com/netflix/nfgraph/util/ByteArrayBuffer.java @@ -23,7 +23,7 @@ import java.io.OutputStream; /** - * AByteArrayBuffer
is used by the {@link NFCompressedGraphBuilder} to write data to a byte array. + * AByteArrayBuffer
is used by the {@link NFCompressedGraphBuilder} to write data to a byte array.* * It is unlikely that this class will need to be used externally. */ diff --git a/src/main/java/com/netflix/nfgraph/util/ByteArrayReader.java b/src/main/java/com/netflix/nfgraph/util/ByteArrayReader.java index 111c16a..0a390ff 100644 --- a/src/main/java/com/netflix/nfgraph/util/ByteArrayReader.java +++ b/src/main/java/com/netflix/nfgraph/util/ByteArrayReader.java @@ -22,7 +22,7 @@ import com.netflix.nfgraph.compressed.NFCompressedGraph; /** - * Used by the {@link NFCompressedGraph}, and various {@link OrdinalSet} and {@link OrdinalIterator} implementations to read the encoded graph data.
+ * Used by the {@link NFCompressedGraph}, and various {@link OrdinalSet} and {@link OrdinalIterator} implementations to read the encoded graph data.* * It is unlikely that this class will be required externally. */ diff --git a/src/main/java/com/netflix/nfgraph/util/OrdinalMap.java b/src/main/java/com/netflix/nfgraph/util/OrdinalMap.java index e17fdf5..d0859f8 100644 --- a/src/main/java/com/netflix/nfgraph/util/OrdinalMap.java +++ b/src/main/java/com/netflix/nfgraph/util/OrdinalMap.java @@ -22,13 +22,13 @@ /** * An
+ * 0 and n, where n is the number of objects in the map.OrdinalMap
will generate and maintain a mapping between objects added and an integer value between - * 0 and n, where n is the number of objects in the map.* - * The values mapped to the objects will be the order in which the objects are inserted.
+ * The values mapped to the objects will be the order in which the objects are inserted.* - * The
+ * TheOrdinalMap
is memory-efficient and can retrieve an object given an ordinal, or an ordinal given an object, both inO(1)
time.OrdinalMap
is memory-efficient and can retrieve an object given an ordinal, or an ordinal given an object, both inO(1)
time.* - * If, for example, some application refers to graph nodes as Strings, the OrdinalMap can be used as follows:
+ * If, for example, some application refers to graph nodes as Strings, the OrdinalMap can be used as follows:* *
* {@code