Package com.globalmentor.collections
Class IdentityHashSet<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
com.globalmentor.collections.IdentityHashSet<E>
- All Implemented Interfaces:
Cloneable
,Iterable<E>
,Collection<E>
,Set<E>
A set that is backed by an identity hash map.
This class is not a general-purpose Set
implementation! While this class implements the Set
interface, it intentionally
violates Set
's general contract, which mandates the use of the Object.equals(Object)
method when comparing objects. This class is designed
for use only in the rare cases wherein reference-equality semantics are required.
This class is based upon HashSet
1.28, 01/23/03 by Josh Bloch, Copyright 2003 Sun Microsystems, Inc.
- Author:
- Garret Wilson
- See Also:
-
Constructor Summary
ConstructorDescriptionConstructs a new, empty set; the backingHashMap
instance has default initial capacity (16) and load factor (0.75).IdentityHashSet
(int initialCapacity) Constructs a new, empty set; the backingHashMap
instance has the specified initial capacity and default load factor, which is0.75
.Constructs a new set containing the elements in the specified collection. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Adds the specified element to this set if it is not already present.void
clear()
Removes all of the elements from this set.clone()
Returns a shallow copy of thisHashSet
instance: the elements themselves are not cloned.boolean
Returnstrue
if this set contains the specified element.boolean
isEmpty()
Returnstrue
if this set contains no elements.iterator()
Returns an iterator over the elements in this set.boolean
Removes the specified element from this set if it is present.int
size()
Returns the number of elements in this set (its cardinality).Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
Methods inherited from interface java.util.Set
addAll, containsAll, equals, hashCode, removeAll, retainAll, spliterator, toArray, toArray
-
Constructor Details
-
IdentityHashSet
public IdentityHashSet()Constructs a new, empty set; the backingHashMap
instance has default initial capacity (16) and load factor (0.75). -
IdentityHashSet
Constructs a new set containing the elements in the specified collection. TheHashMap
is created with default load factor (0.75) and an initial capacity sufficient to contain the elements in the specified collection.- Parameters:
c
- the collection whose elements are to be placed into this set.- Throws:
NullPointerException
- if the specified collection is null.
-
IdentityHashSet
public IdentityHashSet(int initialCapacity) Constructs a new, empty set; the backingHashMap
instance has the specified initial capacity and default load factor, which is0.75
.- Parameters:
initialCapacity
- the initial capacity of the hash table.- Throws:
IllegalArgumentException
- if the initial capacity is less than zero.
-
-
Method Details
-
iterator
Returns an iterator over the elements in this set. The elements are returned in no particular order. -
size
public int size()Returns the number of elements in this set (its cardinality).- Specified by:
size
in interfaceCollection<E>
- Specified by:
size
in interfaceSet<E>
- Specified by:
size
in classAbstractCollection<E>
- Returns:
- the number of elements in this set (its cardinality).
-
isEmpty
public boolean isEmpty()Returnstrue
if this set contains no elements.- Specified by:
isEmpty
in interfaceCollection<E>
- Specified by:
isEmpty
in interfaceSet<E>
- Overrides:
isEmpty
in classAbstractCollection<E>
- Returns:
true
if this set contains no elements.
-
contains
Returnstrue
if this set contains the specified element.- Specified by:
contains
in interfaceCollection<E>
- Specified by:
contains
in interfaceSet<E>
- Overrides:
contains
in classAbstractCollection<E>
- Parameters:
o
- element whose presence in this set is to be tested.- Returns:
true
if this set contains the specified element.
-
add
Adds the specified element to this set if it is not already present.- Specified by:
add
in interfaceCollection<E>
- Specified by:
add
in interfaceSet<E>
- Overrides:
add
in classAbstractCollection<E>
- Parameters:
o
- element to be added to this set.- Returns:
true
if the set did not already contain the specified element.
-
remove
Removes the specified element from this set if it is present.- Specified by:
remove
in interfaceCollection<E>
- Specified by:
remove
in interfaceSet<E>
- Overrides:
remove
in classAbstractCollection<E>
- Parameters:
o
- object to be removed from this set, if present.- Returns:
true
if the set contained the specified element.
-
clear
public void clear()Removes all of the elements from this set.- Specified by:
clear
in interfaceCollection<E>
- Specified by:
clear
in interfaceSet<E>
- Overrides:
clear
in classAbstractCollection<E>
-
clone
Returns a shallow copy of thisHashSet
instance: the elements themselves are not cloned.
-