Package org.apache.commons.collections4.bag

# Class HashBag<E>

java.lang.Object
org.apache.commons.collections4.bag.AbstractMapBag<E>
org.apache.commons.collections4.bag.HashBag<E>

Type Parameters:
  `E` - The type of elements in this bag

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

@Deprecated public class HashBag<E> extends AbstractMapBag<E> implements Serializable
Deprecated.
Since 4.6.0, use `HashMultiSet` instead.
Implements `Bag`, using a `HashMap` to provide the data storage. This is the standard implementation of a bag.

A `Bag` 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. It is important to read the interface Javadoc carefully as several methods violate the `Collection` interface specification.

Note that HashBag is not synchronized and is not thread-safe. If you wish to use this bag from multiple threads concurrently, you must use appropriate synchronization. The simplest approach is to wrap this bag using `BagUtils.synchronizedBag(Bag)`. 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:
  3.0 (previously in main package v2.0)
See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.collections4.bag.AbstractMapBag

  `AbstractMapBag.MutableInteger`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HashBag()`
  Deprecated.
  Constructs an empty `HashBag`.
  `HashBag(Iterable<? extends E> iterable)`
  Deprecated.
  Constructs a bag containing all the members of the given Iterable.
  `HashBag(Collection<? extends E> collection)`
  Deprecated.
  Constructs a bag containing all the members of the given Collection.

- ## Method Summary

  ### Methods inherited from class org.apache.commons.collections4.bag.AbstractMapBag

  `add, add, addAll, clear, contains, containsAll, doReadObject, doWriteObject, equals, getCount, getMap, hashCode, isEmpty, iterator, remove, remove, removeAll, retainAll, size, toArray, toArray, toString, uniqueSet`

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

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

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

  `parallelStream, removeIf, spliterator, stream`

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

  `forEach`

- ## Constructor Details

  - ### HashBag

    public HashBag()
    Deprecated.
    Constructs an empty `HashBag`.

  - ### HashBag

    public HashBag(Collection<? extends E> collection)
    Deprecated.
    Constructs a bag containing all the members of the given Collection.
    Parameters:
      `collection` - A collection to copy into this bag.

  - ### HashBag

    public HashBag(Iterable<? extends E> iterable)
    Deprecated.
    Constructs a bag containing all the members of the given Iterable.
    Parameters:
      `iterable` - An iterable to copy into this bag.
    Since:
      4.5.0-M3