E - The type of the elements stored in the setpublic class OAHashSet<E> extends AbstractSet<E>
Set implementation with linear
probing for CPU cache efficiency. This implementation caches the hashes
of the elements stored in the set. This caching enables avoiding
expensive hashCode() calls when rehashing at the cost of the
increased memory consumption.
Besides avoiding hashCode() calls on rehashing, this
implementation offers methods that accept the hash together with the
element if it is already known on the caller side.
See add(Object, int), contains(Object, int), remove(Object, int).
This Set implementation does not permit null elements.
This Set implementation does not permit concurrent modifications
during iteration.
Please note that this Set implementation does not shrink when
elements are removed.
| Constructor and Description |
|---|
OAHashSet()
Constructs an
OAHashSet instance with default initial
capacity and default load factor |
OAHashSet(int initialCapacity)
Constructs an
OAHashSet instance with the specified
initial capacity and with the default load factor |
OAHashSet(int initialCapacity,
float loadFactor)
Constructs an
OAHashSet instance with the specified
initial capacity and load factor |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E element) |
boolean |
add(E elementToAdd,
int hash)
Adds the specified element to this set if it is not already present.
|
int |
capacity()
Returns the capacity of the set
|
void |
clear() |
boolean |
contains(Object objectToCheck) |
boolean |
contains(Object objectToCheck,
int hash)
Returns true if this set contains the specified element
with the hash provided in parameter.
|
long |
footprint()
Returns the current memory consumption (in bytes)
|
int |
hashCode() |
Iterator<E> |
iterator() |
float |
loadFactor()
Returns the load factor of the set
|
boolean |
remove(Object objectToRemove) |
boolean |
remove(Object objectToRemove,
int hash)
Removes the specified element from this set if it is present with
the hash provided in parameter.
|
boolean |
removeAll(Collection<?> elementsToRemove) |
boolean |
retainAll(Collection<?> elementsToRetain) |
int |
size() |
Object[] |
toArray() |
<T> T[] |
toArray(T[] array) |
equalsaddAll, containsAll, isEmpty, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitaddAll, containsAll, isEmpty, spliteratorparallelStream, removeIf, streampublic OAHashSet()
OAHashSet instance with default initial
capacity and default load factorDEFAULT_INITIAL_CAPACITY,
DEFAULT_LOAD_FACTORpublic OAHashSet(int initialCapacity)
OAHashSet instance with the specified
initial capacity and with the default load factorinitialCapacity - the initial capacity of the set to be createdDEFAULT_LOAD_FACTORpublic OAHashSet(int initialCapacity,
float loadFactor)
OAHashSet instance with the specified
initial capacity and load factorinitialCapacity - the initial capacity of the set to be createdloadFactor - the load factor of the set to be createdpublic boolean add(E element)
add in interface Collection<E>add in interface Set<E>add in class AbstractCollection<E>public boolean add(E elementToAdd, int hash)
This variant of add(Object) acts as an optimisation to
enable avoiding hashCode() calls if the hash is already
known on the caller side.
elementToAdd - element to be added to this sethash - the hash of the element to be addedadd(Object)public boolean contains(Object objectToCheck)
contains in interface Collection<E>contains in interface Set<E>contains in class AbstractCollection<E>public boolean contains(Object objectToCheck, int hash)
This variant of contains(Object) acts as an optimisation to
enable avoiding hashCode() calls if the hash is already
known on the caller side.
objectToCheck - element whose presence in this set is to be testedhash - the hash of the element to be testedcontains(Object)public boolean remove(Object objectToRemove)
remove in interface Collection<E>remove in interface Set<E>remove in class AbstractCollection<E>public boolean remove(Object objectToRemove, int hash)
This variant of remove(Object) acts as an optimisation to
enable avoiding hashCode() calls if the hash is already
known on the caller side.
objectToRemove - object to be removed from this set, if presenthash - the hash of the element to be removedremove(Object)public boolean removeAll(Collection<?> elementsToRemove)
removeAll in interface Collection<E>removeAll in interface Set<E>removeAll in class AbstractSet<E>public boolean retainAll(Collection<?> elementsToRetain)
retainAll in interface Collection<E>retainAll in interface Set<E>retainAll in class AbstractCollection<E>public int size()
size in interface Collection<E>size in interface Set<E>size in class AbstractCollection<E>public Object[] toArray()
toArray in interface Collection<E>toArray in interface Set<E>toArray in class AbstractCollection<E>public <T> T[] toArray(T[] array)
toArray in interface Collection<E>toArray in interface Set<E>toArray in class AbstractCollection<E>public void clear()
clear in interface Collection<E>clear in interface Set<E>clear in class AbstractCollection<E>public int capacity()
public long footprint()
public float loadFactor()
public int hashCode()
hashCode in interface Collection<E>hashCode in interface Set<E>hashCode in class AbstractSet<E>Copyright © 2020 Hazelcast, Inc.. All Rights Reserved.