public class CachingIndexed<T> extends Object implements CloseableIndexed<T>
| Constructor and Description |
|---|
CachingIndexed(GenericIndexed<T> delegate,
int lookupCacheSize)
Creates a CachingIndexed wrapping the given GenericIndexed with a value lookup cache
CachingIndexed objects are not thread safe and should only be used by a single thread at a time.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
T |
get(int index)
Get the value at specified position
|
int |
indexOf(T value)
Returns the index of "value" in this Indexed object, or a negative number if the value is not present.
|
void |
inspectRuntimeShape(RuntimeShapeInspector inspector)
Implementations of this method should call
inspector.visit() with all fields of this class, which meet two
conditions:
1. |
boolean |
isSorted()
Indicates if this value set is sorted, the implication being that the contract of
Indexed.indexOf(T) is strenthened
to return a negative number equal to (-(insertion point) - 1) when the value is not present in the set. |
Iterator<T> |
iterator() |
int |
size()
Number of elements in the value set
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckIndexforEach, spliteratorpublic CachingIndexed(GenericIndexed<T> delegate, int lookupCacheSize)
delegate - the GenericIndexed to wrap with a lookup cache.lookupCacheSize - maximum size in bytes of the lookup cache if greater than zeropublic int size()
Indexedpublic T get(int index)
Indexedpublic int indexOf(@Nullable T value)
IndexedIndexed.isSorted() returns true, in
which case it will be a negative number equal to (-(insertion point) - 1), in the manner of Arrays.binarySearch.indexOf in interface Indexed<T>value - value to search forIndexed.isSorted())public boolean isSorted()
IndexedIndexed.indexOf(T) is strenthened
to return a negative number equal to (-(insertion point) - 1) when the value is not present in the set.public void close()
close in interface Closeableclose in interface AutoCloseablepublic void inspectRuntimeShape(RuntimeShapeInspector inspector)
HotLoopCalleeinspector.visit() with all fields of this class, which meet two
conditions:
1. They are used in methods of this class, annotated with CalledFromHotLoop
2. They are either:
a. Nullable objects
b. Instances of HotLoopCallee
c. Objects, which don't always have a specific class in runtime. For example, a field of type Set could be HashSet or TreeSet in runtime, depending on how
this instance (the instance on which inspectRuntimeShape() is called) is configured.
d. ByteBuffer or similar objects, where byte order matters
e. boolean flags, affecting branch taking
f. Arrays of objects, meeting any of conditions a-e.inspectRuntimeShape in interface HotLoopCalleeCopyright © 2011–2022 The Apache Software Foundation. All rights reserved.