# Class HashMultiSet<E>

java.lang.Object
java.util.AbstractCollection<E>
org.apache.commons.collections4.multiset.AbstractMultiSet<E>
org.apache.commons.collections4.multiset.AbstractMapMultiSet<E>
org.apache.commons.collections4.multiset.HashMultiSet<E>

Type Parameters:
  `E` - the type held in the multiset

All Implemented Interfaces:
  `Serializable`, `Iterable<E>`, `Collection<E>`, `MultiSet<E>`

public class HashMultiSet<E> extends AbstractMapMultiSet<E> implements Serializable
Implements `MultiSet`, using a `HashMap` to provide the data storage. This is the standard implementation of a multiset.

A `MultiSet` stores each object in the collection together with a count of occurrences. Extra methods on the interface allow multiple copies of an object to be added or removed at once.

Since:
  4.1
See Also:
  - Serialized Form

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class org.apache.commons.collections4.multiset.AbstractMapMultiSet

  `AbstractMapMultiSet.EntrySetIterator<E>, AbstractMapMultiSet.MultiSetEntry<E>, AbstractMapMultiSet.MutableInteger, AbstractMapMultiSet.UniqueSetIterator<E>`

  ### Nested classes/interfaces inherited from class org.apache.commons.collections4.multiset.AbstractMultiSet

  `AbstractMultiSet.AbstractEntry<E>, AbstractMultiSet.EntrySet<E>, AbstractMultiSet.UniqueSet<E>`

  ### Nested classes/interfaces inherited from interface org.apache.commons.collections4.MultiSet

  `MultiSet.Entry<E>`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HashMultiSet()`
  Constructs an empty `HashMultiSet`.
  `HashMultiSet(Collection<? extends E> coll)`
  Constructs a multiset containing all the members of the given collection.

- ## Method Summary

  ### Methods inherited from class org.apache.commons.collections4.multiset.AbstractMapMultiSet

  `add, clear, contains, createEntrySetIterator, createUniqueSetIterator, doReadObject, doWriteObject, equals, getCount, getMap, hashCode, isEmpty, iterator, remove, setMap, size, toArray, toArray, uniqueElements`

  ### Methods inherited from class org.apache.commons.collections4.multiset.AbstractMultiSet

  `add, createEntrySet, createUniqueSet, entrySet, remove, removeAll, setCount, toString, uniqueSet`

  ### Methods inherited from class java.util.AbstractCollection

  `addAll, containsAll, retainAll`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.util.Collection

  `addAll, parallelStream, removeIf, spliterator, stream`

  ### Methods inherited from interface java.lang.Iterable

  `forEach`

  ### Methods inherited from interface org.apache.commons.collections4.MultiSet

  `containsAll, retainAll`

- ## Constructor Details

  - ### HashMultiSet

    public HashMultiSet()
    Constructs an empty `HashMultiSet`.

  - ### HashMultiSet

    public HashMultiSet(Collection<? extends E> coll)
    Constructs a multiset containing all the members of the given collection.
    Parameters:
      `coll` - a collection to copy into this multiset