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:
  • 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