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:
java.lang.Cloneable
,java.lang.Iterable<E>
,java.util.Collection<E>
,java.util.Set<E>
public class IdentityHashSet<E> extends java.util.AbstractSet<E> implements java.util.Set<E>, java.lang.Cloneable
A set that is backed by an identity hash map.This class is not a general-purpose
Set
implementation! While this class implements theSet
interface, it intentionally violatesSet
's general contract, which mandates the use of theObject.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:
HashSet
,IdentityHashMap
-
-
Constructor Summary
Constructors Constructor Description IdentityHashSet()
Constructs 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
.IdentityHashSet(java.util.Collection<E> c)
Constructs a new set containing the elements in the specified collection.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(E o)
Adds the specified element to this set if it is not already present.void
clear()
Removes all of the elements from this set.java.lang.Object
clone()
Returns a shallow copy of thisHashSet
instance: the elements themselves are not cloned.boolean
contains(java.lang.Object o)
Returnstrue
if this set contains the specified element.boolean
isEmpty()
Returnstrue
if this set contains no elements.java.util.Iterator<E>
iterator()
Returns an iterator over the elements in this set.boolean
remove(java.lang.Object o)
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.AbstractCollection
addAll, containsAll, retainAll, toArray, toArray, toString
-
-
-
-
Constructor Detail
-
IdentityHashSet
public IdentityHashSet()
Constructs a new, empty set; the backingHashMap
instance has default initial capacity (16) and load factor (0.75).
-
IdentityHashSet
public IdentityHashSet(java.util.Collection<E> c)
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:
java.lang.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:
java.lang.IllegalArgumentException
- if the initial capacity is less than zero.
-
-
Method Detail
-
iterator
public java.util.Iterator<E> iterator()
Returns an iterator over the elements in this set. The elements are returned in no particular order.- Specified by:
iterator
in interfacejava.util.Collection<E>
- Specified by:
iterator
in interfacejava.lang.Iterable<E>
- Specified by:
iterator
in interfacejava.util.Set<E>
- Specified by:
iterator
in classjava.util.AbstractCollection<E>
- Returns:
- an Iterator over the elements in this set.
- See Also:
ConcurrentModificationException
-
size
public int size()
Returns the number of elements in this set (its cardinality).
-
isEmpty
public boolean isEmpty()
Returnstrue
if this set contains no elements.
-
contains
public boolean contains(java.lang.Object o)
Returnstrue
if this set contains the specified element.
-
add
public boolean add(E o)
Adds the specified element to this set if it is not already present.
-
remove
public boolean remove(java.lang.Object o)
Removes the specified element from this set if it is present.
-
clear
public void clear()
Removes all of the elements from this set.
-
clone
public java.lang.Object clone()
Returns a shallow copy of thisHashSet
instance: the elements themselves are not cloned.- Overrides:
clone
in classjava.lang.Object
- Returns:
- a shallow copy of this set.
-
-