common
Class WeakHashSet
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet
common.WeakHashSet
- All Implemented Interfaces:
- java.lang.Iterable, java.util.Collection, java.util.Set
public class WeakHashSet
- extends java.util.AbstractSet
A HashSet class that uses weak references to its elements. This means
that if the only reference to an object is from this set, the object
will be garbage-collected and removed from this set.
The current implementation is built on WeakHashMap: it's just a map
where every key is mapped to Boolean.TRUE. It would be a bit more
elegant (and save some memory) to write this class from scratch.
But it can't be built on top of an ordinary HashSet, because we
want to store WeakReference objects while using the
equals and hashCode methods of their
referents.
|
Constructor Summary |
WeakHashSet()
Creates a new, empty WeakHashSet. |
WeakHashSet(java.util.Collection c)
Creates a new WeakHashSet whose elements are weak references to the
elements of the given collection. |
|
Method Summary |
boolean |
add(java.lang.Object o)
|
boolean |
contains(java.lang.Object o)
|
java.util.Iterator |
iterator()
|
boolean |
remove(java.lang.Object o)
|
int |
size()
|
| Methods inherited from class java.util.AbstractSet |
equals, hashCode, removeAll |
| Methods inherited from class java.util.AbstractCollection |
addAll, clear, containsAll, isEmpty, 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.Set |
addAll, clear, containsAll, isEmpty, retainAll, toArray, toArray |
WeakHashSet
public WeakHashSet()
- Creates a new, empty WeakHashSet.
WeakHashSet
public WeakHashSet(java.util.Collection c)
- Creates a new WeakHashSet whose elements are weak references to the
elements of the given collection.
size
public int size()
- Specified by:
size in interface java.util.Collection- Specified by:
size in interface java.util.Set- Specified by:
size in class java.util.AbstractCollection
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains in interface java.util.Collection- Specified by:
contains in interface java.util.Set- Overrides:
contains in class java.util.AbstractCollection
iterator
public java.util.Iterator iterator()
- Specified by:
iterator in interface java.lang.Iterable- Specified by:
iterator in interface java.util.Collection- Specified by:
iterator in interface java.util.Set- Specified by:
iterator in class java.util.AbstractCollection
add
public boolean add(java.lang.Object o)
- Specified by:
add in interface java.util.Collection- Specified by:
add in interface java.util.Set- Overrides:
add in class java.util.AbstractCollection
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove in interface java.util.Collection- Specified by:
remove in interface java.util.Set- Overrides:
remove in class java.util.AbstractCollection