K
- key typeV
- value typepublic interface MapWithOrdinal<K,V>
This class extends the functionality a regular Map
with ordinal lookup support.
Upon insertion an unused ordinal is assigned to the inserted (key, value) tuple.
Upon update the same ordinal id is re-used while value is replaced.
Upon deletion of an existing item, its corresponding ordinal is recycled and could be used by another item.
For any instance with N items, this implementation guarantees that ordinals are in the range of [0, N). However,
the ordinal assignment is dynamic and may change after an insertion or deletion. Consumers of this class are
responsible for explicitly checking the ordinal corresponding to a key via
MultiMapWithOrdinal.getOrdinal(Object)
before attempting to execute a lookup
with an ordinal.
Modifier and Type | Method and Description |
---|---|
void |
clear() |
boolean |
containsKey(K key) |
V |
get(K key) |
Collection<V> |
getAll(K key) |
V |
getByOrdinal(int id) |
int |
getOrdinal(K key) |
boolean |
isEmpty() |
Set<K> |
keys() |
boolean |
put(K key,
V value,
boolean overwrite) |
boolean |
remove(K key,
V value) |
boolean |
removeAll(K key) |
int |
size() |
Collection<V> |
values() |
V getByOrdinal(int id)
int getOrdinal(K key)
int size()
boolean isEmpty()
Collection<V> getAll(K key)
Collection<V> values()
boolean containsKey(K key)
boolean removeAll(K key)
void clear()
Copyright © 2023 The Apache Software Foundation. All rights reserved.