# 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>`

public class HashBag<E> extends AbstractMapBag<E> implements Serializable
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.

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()`
  Constructs an empty `HashBag`.
  `HashBag(Iterable<? extends E> iterable)`
  Constructs a bag containing all the members of the given Iterable.
  `HashBag(Collection<? extends E> collection)`
  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()
    Constructs an empty `HashBag`.

  - ### HashBag

    public HashBag(Collection<? extends E> collection)
    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)
    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