Class MapSet

All Implemented Interfaces:
ExternalizableLite, Externalizable, Serializable, Cloneable, Iterable, Collection, Set
Direct Known Subclasses:
SafeHashSet, SegmentedHashSet

public class MapSet extends AbstractSet implements Cloneable, Externalizable, ExternalizableLite
An ExternalizableLite implementation of java.util.Set that uses an underlying Map object to store its data in, just as the Java HashSet implementation uses an underlying HashMap for its element storage.
Since:
Coherence 3.2
Author:
cp 09/16/05 Originally SafeHashSet (gg)
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Map
    The underlying Map.
    protected static final Object
    A no-value object.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    MapSet(Map map)
    Construct a MapSet that uses the given Map for its underlying storage.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Ensures that this Set contains the specified element.
    boolean
    Adds all of the elements in the specified Collection to this Set if they're not already present.
    void
    Removes all of the elements from this Set.
    Create a clone of this MapSet.
    boolean
    Returns true if this Set contains the specified element.
    boolean
    Returns true if this Set contains all of the elements in the specified Collection.
    Obtain the underlying Map for purposes of synchronization or read-only access; the caller must never directly modify the returned Map.
    protected Map
    Factory pattern: Provide an underlying Map for this Set implementation to store its contents in.
    Returns an iterator over the elements in this Set.
    void
    Restore the contents of this object by loading the object's state from the passed DataInput object.
    void
    Initialize this object from the contents of the passed object stream.
    boolean
    Removes the specified element from this Set if it is present.
    boolean
    Removes from this Set all of its elements that are contained in the specified Collection.
    boolean
    Retains only the elements in this Set that are contained in the specified Collection.
    int
    Returns the number of elements in this Set.
    Returns an array containing all of the elements in this Set.
    Returns an array containing all of the elements in this set whose runtime type is that of the specified array.
    void
    Save the contents of this object by storing the object's state into the passed DataOutput object.
    void
    Write the contents of this object into the passed object stream.

    Methods inherited from class java.util.AbstractSet

    equals, hashCode

    Methods inherited from class java.util.AbstractCollection

    isEmpty, 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, toArray

    Methods inherited from interface java.lang.Iterable

    forEach

    Methods inherited from interface java.util.Set

    isEmpty, spliterator
  • Field Details

    • NO_VALUE

      protected static final Object NO_VALUE
      A no-value object.
    • m_map

      protected transient Map m_map
      The underlying Map.
  • Constructor Details

    • MapSet

      public MapSet()
      Default constructor. By default, HashMap is the underlying Map. If that is not the desired behavior, then pass an explicit Map to the MapSet(Map) constructor. To change the default Map implementation, sub-class the MapSet and override the instantiateMap() method.
    • MapSet

      public MapSet(Map map)
      Construct a MapSet that uses the given Map for its underlying storage.
      Parameters:
      map - the underlying Map object
  • Method Details

    • size

      public int size()
      Returns the number of elements in this Set.
      Specified by:
      size in interface Collection
      Specified by:
      size in interface Set
      Specified by:
      size in class AbstractCollection
      Returns:
      the number of elements in this Set.
    • contains

      public boolean contains(Object o)
      Returns true if this Set contains the specified element.
      Specified by:
      contains in interface Collection
      Specified by:
      contains in interface Set
      Overrides:
      contains in class AbstractCollection
      Returns:
      true if this Set contains the specified element
    • iterator

      public Iterator iterator()
      Returns an iterator over the elements in this Set. The elements are returned in no particular order.
      Specified by:
      iterator in interface Collection
      Specified by:
      iterator in interface Iterable
      Specified by:
      iterator in interface Set
      Specified by:
      iterator in class AbstractCollection
      Returns:
      an iterator over the elements in this Set
    • toArray

      public Object[] toArray()
      Returns an array containing all of the elements in this Set. Obeys the general contract of the Collection.toArray() method.
      Specified by:
      toArray in interface Collection
      Specified by:
      toArray in interface Set
      Overrides:
      toArray in class AbstractCollection
      Returns:
      an array containing all of the elements in this Set
    • toArray

      public Object[] toArray(Object[] ao)
      Returns an array containing all of the elements in this set whose runtime type is that of the specified array. Obeys the general contract of the Collection.toArray(Object[]) method.
      Specified by:
      toArray in interface Collection
      Specified by:
      toArray in interface Set
      Overrides:
      toArray in class AbstractCollection
      Parameters:
      ao - the array into which the elements of this Set are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose
      Returns:
      an array containing the elements of this Set
      Throws:
      ArrayStoreException - the runtime type of a is not a supertype of the runtime type of every element in this Set
    • add

      public boolean add(Object o)
      Ensures that this Set contains the specified element. Returns true if the Set changed as a result of the call. Returns false if this Set already contains the specified element.
      Specified by:
      add in interface Collection
      Specified by:
      add in interface Set
      Overrides:
      add in class AbstractCollection
      Parameters:
      o - element to be added to this Set
      Returns:
      true if this Set did not already contain the specified element
    • remove

      public boolean remove(Object o)
      Removes the specified element from this Set if it is present. Returns true if the Set contained the specified element (or equivalently, if the Set changed as a result of the call). The Set will not contain the specified element once the call returns.
      Specified by:
      remove in interface Collection
      Specified by:
      remove in interface Set
      Overrides:
      remove in class AbstractCollection
      Parameters:
      o - object to be removed from this Set, if present
      Returns:
      true if the Set contained the specified element
    • containsAll

      public boolean containsAll(Collection coll)
      Returns true if this Set contains all of the elements in the specified Collection.
      Specified by:
      containsAll in interface Collection
      Specified by:
      containsAll in interface Set
      Overrides:
      containsAll in class AbstractCollection
      Parameters:
      coll - Collection to be checked for containment in this Set
      Returns:
      true if this Set contains all of the elements in the specified Collection
      See Also:
    • addAll

      public boolean addAll(Collection coll)
      Adds all of the elements in the specified Collection to this Set if they're not already present.
      Specified by:
      addAll in interface Collection
      Specified by:
      addAll in interface Set
      Overrides:
      addAll in class AbstractCollection
      Parameters:
      coll - Collection whose elements are to be added to this Set
      Returns:
      true if this Set changed as a result of the call
      See Also:
    • retainAll

      public boolean retainAll(Collection coll)
      Retains only the elements in this Set that are contained in the specified Collection.
      Specified by:
      retainAll in interface Collection
      Specified by:
      retainAll in interface Set
      Overrides:
      retainAll in class AbstractCollection
      Parameters:
      coll - Collection that defines which elements this Set will retain
      Returns:
      true if this Set changed as a result of the call
    • removeAll

      public boolean removeAll(Collection coll)
      Removes from this Set all of its elements that are contained in the specified Collection.
      Specified by:
      removeAll in interface Collection
      Specified by:
      removeAll in interface Set
      Overrides:
      removeAll in class AbstractSet
      Parameters:
      coll - Collection that defines which elements will be removed from this Set
      Returns:
      true if this Set changed as a result of the call
      See Also:
    • clear

      public void clear()
      Removes all of the elements from this Set.
      Specified by:
      clear in interface Collection
      Specified by:
      clear in interface Set
      Overrides:
      clear in class AbstractCollection
    • getMap

      public Map getMap()
      Obtain the underlying Map for purposes of synchronization or read-only access; the caller must never directly modify the returned Map.
      Returns:
      the underlying Map
    • clone

      public Object clone()
      Create a clone of this MapSet.
      Overrides:
      clone in class Object
      Returns:
      a clone of this MapSet
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Initialize this object from the contents of the passed object stream.
      Specified by:
      readExternal in interface Externalizable
      Parameters:
      in - the stream to read data from in order to restore the object
      Throws:
      IOException - if an I/O exception occurs
      ClassNotFoundException
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Write the contents of this object into the passed object stream.
      Specified by:
      writeExternal in interface Externalizable
      Parameters:
      out - the stream to write the object to
      Throws:
      IOException - if an I/O exception occurs
    • readExternal

      public void readExternal(DataInput in) throws IOException
      Restore the contents of this object by loading the object's state from the passed DataInput object.
      Specified by:
      readExternal in interface ExternalizableLite
      Parameters:
      in - the DataInput stream to read data from in order to restore the state of this object
      Throws:
      IOException - if an I/O exception occurs
    • writeExternal

      public void writeExternal(DataOutput out) throws IOException
      Save the contents of this object by storing the object's state into the passed DataOutput object.
      Specified by:
      writeExternal in interface ExternalizableLite
      Parameters:
      out - the DataOutput stream to write the state of this object to
      Throws:
      IOException - if an I/O exception occurs
    • instantiateMap

      protected Map instantiateMap()
      Factory pattern: Provide an underlying Map for this Set implementation to store its contents in.
      Returns:
      a new Map instance