edu.memphis.ccrg.lida.framework.shared
Class ConcurrentHashSet<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by edu.memphis.ccrg.lida.framework.shared.ConcurrentHashSet<E>
Type Parameters:
E - The generic type to use in this HashSet
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<E>, java.util.Collection<E>, java.util.Set<E>

public class ConcurrentHashSet<E>
extends java.util.AbstractSet<E>
implements java.util.Set<E>, java.io.Serializable

Thread-safe HashSet based on a ConcurrentHashMap

Author:
Ryan J. McCall
See Also:
Serialized Form

Constructor Summary
ConcurrentHashSet()
          Constructs a new, empty set; the backing ConcurrentHashMap has default initial capacity, load factor, and concurrencyLevel.
ConcurrentHashSet(java.util.Collection<? extends E> c)
          Constructs a new set containing the elements in the specified collection.
ConcurrentHashSet(int initialCapacity)
          Constructs a new, empty set; the backing ConcurrentHashMap has specified initial capacity, default load factor, and default concurrencyLevel.
ConcurrentHashSet(int initialCapacity, float loadFactor)
           
 
Method Summary
 boolean add(E e)
          Adds the specified element to this set if it is not already present.
 boolean addAll(java.util.Collection<? extends E> c)
           
 void clear()
          Removes all of the elements from this set.
 boolean contains(java.lang.Object o)
          Returns true if this set contains the specified element.
 boolean isEmpty()
          Returns true 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.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
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.Set
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Constructor Detail

ConcurrentHashSet

public ConcurrentHashSet()
Constructs a new, empty set; the backing ConcurrentHashMap has default initial capacity, load factor, and concurrencyLevel.


ConcurrentHashSet

public ConcurrentHashSet(java.util.Collection<? extends E> c)
Constructs a new set containing the elements in the specified collection.

Parameters:
c - collection of elements

ConcurrentHashSet

public ConcurrentHashSet(int initialCapacity,
                         float loadFactor)
Parameters:
initialCapacity - the initial capacity. The implementation performs internal sizing to accommodate this many elements.
loadFactor - the load factor threshold, used to control resizing. Resizing may be performed when the average number of elements per bin exceeds this threshold.
Throws:
java.lang.IllegalArgumentException - - if the initial capacity is negative or the load factor or concurrencyLevel are nonpositive.

ConcurrentHashSet

public ConcurrentHashSet(int initialCapacity)
Constructs a new, empty set; the backing ConcurrentHashMap has specified initial capacity, default load factor, and default concurrencyLevel.

Parameters:
initialCapacity - initial capacity
Throws:
java.lang.IllegalArgumentException - - if the initial capacity of elements is negative.
Method Detail

addAll

public boolean addAll(java.util.Collection<? extends E> c)
Specified by:
addAll in interface java.util.Collection<E>
Specified by:
addAll in interface java.util.Set<E>
Overrides:
addAll in class java.util.AbstractCollection<E>

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 interface java.lang.Iterable<E>
Specified by:
iterator in interface java.util.Collection<E>
Specified by:
iterator in interface java.util.Set<E>
Specified by:
iterator in class java.util.AbstractCollection<E>
Returns:
an Iterator over the elements in this set

size

public int size()
Returns the number of elements in this set (its cardinality).

Specified by:
size in interface java.util.Collection<E>
Specified by:
size in interface java.util.Set<E>
Specified by:
size in class java.util.AbstractCollection<E>
Returns:
the number of elements in this set (its cardinality)

isEmpty

public boolean isEmpty()
Returns true if this set contains no elements.

Specified by:
isEmpty in interface java.util.Collection<E>
Specified by:
isEmpty in interface java.util.Set<E>
Overrides:
isEmpty in class java.util.AbstractCollection<E>
Returns:
true if this set contains no elements

contains

public boolean contains(java.lang.Object o)
Returns true if this set contains the specified element. More formally, returns true if and only if this set contains an element e such that (o==null ? e==null : o.equals(e)).

Specified by:
contains in interface java.util.Collection<E>
Specified by:
contains in interface java.util.Set<E>
Overrides:
contains in class java.util.AbstractCollection<E>
Parameters:
o - element whose presence in this set is to be tested
Returns:
true if this set contains the specified element

add

public boolean add(E e)
Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no element e2 such that (e==null ? e2==null : e.equals(e2)). If this set already contains the element, the call leaves the set unchanged and returns false.

Specified by:
add in interface java.util.Collection<E>
Specified by:
add in interface java.util.Set<E>
Overrides:
add in class java.util.AbstractCollection<E>
Parameters:
e - element to be added to this set
Returns:
true if this set did not already contain the specified element

remove

public boolean remove(java.lang.Object o)
Removes the specified element from this set if it is present. More formally, removes an element e such that (o==null ? e==null : o.equals(e)), if this set contains such an element. Returns true if this set contained the element (or equivalently, if this set changed as a result of the call). (This set will not contain the element once the call returns.)

Specified by:
remove in interface java.util.Collection<E>
Specified by:
remove in interface java.util.Set<E>
Overrides:
remove in class java.util.AbstractCollection<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. The set will be empty after this call returns.

Specified by:
clear in interface java.util.Collection<E>
Specified by:
clear in interface java.util.Set<E>
Overrides:
clear in class java.util.AbstractCollection<E>