Package extra166y
Class CustomConcurrentHashMap.KeySet<K>
java.lang.Object
java.util.AbstractCollection<K>
java.util.AbstractSet<K>
extra166y.CustomConcurrentHashMap.KeySet<K>
- All Implemented Interfaces:
Serializable
,Iterable<K>
,Collection<K>
,Set<K>
- Enclosing class:
CustomConcurrentHashMap<K,
V>
public static class CustomConcurrentHashMap.KeySet<K>
extends AbstractSet<K>
implements Set<K>, Serializable
A hash-based set with properties identical to those of
Collections.newSetFromMap
applied to a
CustomConcurrentHashMap
, but possibly more
space-efficient. The set does not permit null elements. The
set is serializable; however, serializing a set that uses soft
or weak references can give unpredictable results.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionKeySet
(CustomConcurrentHashMap.Strength strength, CustomConcurrentHashMap.Equivalence<? super K> equivalence, int expectedSize) Creates a set with the given parameters -
Method Summary
Modifier and TypeMethodDescriptionboolean
Adds the specified element to this set if there is not already an element equivalent to the given element with respect to this set's Equivalence.void
clear()
Removes all of the elements from this set.boolean
Returns true if this set contains an element equivalent to the given element with respect to this set's Equivalence.int
hashCode()
Returns the sum of the hash codes of each element, as computed by this set's Equivalence.Returns an element equivalent to the given element with respect to this set's Equivalence, if such an element exists, else adds and returns the given element.boolean
isEmpty()
Returns true if this set contains no elements.iterator()
Returns a weakly consistent iterator over the elements in this set, that may reflect some, all or none of the changes made to the set after the iterator was created.boolean
Removes an element equivalent to the given element with respect to this set's Equivalence, if one is present.int
size()
Returns the number of elements in this set (its cardinality).Methods inherited from class java.util.AbstractSet
equals, removeAll
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.Set
addAll, containsAll, equals, removeAll, retainAll, spliterator, toArray, toArray
-
Constructor Details
-
KeySet
public KeySet(CustomConcurrentHashMap.Strength strength, CustomConcurrentHashMap.Equivalence<? super K> equivalence, int expectedSize) Creates a set with the given parameters- Parameters:
strength
- the strength of elementsequivalence
- the Equivalence to useexpectedSize
- an estimate of the number of elements that will be held in the set. If no estimate is known, zero is an acceptable value.
-
-
Method Details
-
intern
Returns an element equivalent to the given element with respect to this set's Equivalence, if such an element exists, else adds and returns the given element.- Parameters:
e
- the element- Returns:
- e, or an element equivalent to e.
-
contains
Returns true if this set contains an element equivalent to the given element with respect to this set's Equivalence.- Specified by:
contains
in interfaceCollection<K>
- Specified by:
contains
in interfaceSet<K>
- Overrides:
contains
in classAbstractCollection<K>
- Parameters:
o
- element whose presence in this set is to be tested- Returns:
- true if this set contains the specified element
-
iterator
Returns a weakly consistent iterator over the elements in this set, that may reflect some, all or none of the changes made to the set after the iterator was created. -
add
Adds the specified element to this set if there is not already an element equivalent to the given element with respect to this set's Equivalence.- Specified by:
add
in interfaceCollection<K>
- Specified by:
add
in interfaceSet<K>
- Overrides:
add
in classAbstractCollection<K>
- Parameters:
e
- element to be added to this set- Returns:
- true if this set did not already contain the specified element
-
remove
Removes an element equivalent to the given element with respect to this set's Equivalence, if one is present.- Specified by:
remove
in interfaceCollection<K>
- Specified by:
remove
in interfaceSet<K>
- Overrides:
remove
in classAbstractCollection<K>
- Parameters:
o
- object to be removed from this set, if present- Returns:
- true if the set contained the specified element
-
isEmpty
public boolean isEmpty()Returns true if this set contains no elements.- Specified by:
isEmpty
in interfaceCollection<K>
- Specified by:
isEmpty
in interfaceSet<K>
- Overrides:
isEmpty
in classAbstractCollection<K>
- Returns:
- true if this set contains no elements
-
size
public int size()Returns the number of elements in this set (its cardinality).- Specified by:
size
in interfaceCollection<K>
- Specified by:
size
in interfaceSet<K>
- Specified by:
size
in classAbstractCollection<K>
- Returns:
- the number of elements in this set (its cardinality)
-
clear
public void clear()Removes all of the elements from this set.- Specified by:
clear
in interfaceCollection<K>
- Specified by:
clear
in interfaceSet<K>
- Overrides:
clear
in classAbstractCollection<K>
-
hashCode
public int hashCode()Returns the sum of the hash codes of each element, as computed by this set's Equivalence.- Specified by:
hashCode
in interfaceCollection<K>
- Specified by:
hashCode
in interfaceSet<K>
- Overrides:
hashCode
in classAbstractSet<K>
- Returns:
- the hash code
-