Class 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.

Note that HashMultiSet is not synchronized and is not thread-safe. If you wish to use this multiset from multiple threads concurrently, you must use appropriate synchronization. The simplest approach is to wrap this multiset using MultiSetUtils.synchronizedMultiSet(MultiSet). Unsynchronized concurrent modification can corrupt the structure of the backing HashMap, which may cause subsequent operations to throw exceptions, return incorrect results, or loop indefinitely.

Since:
4.1
See Also:
  • 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
    • HashMultiSet

      public HashMultiSet(Iterable<? extends E> iterable)
      Constructs a multiset containing all the members of the given Iterable.
      Parameters:
      iterable - An iterable to copy into this multiset.
      Since:
      4.6.0