# Package org.apache.commons.collections4.bag

This package contains implementations of the `Bag` and `SortedBag` interfaces.

See: Description

- Class Summary
  Class | Description
  --- | ---
  AbstractBagDecorator<E> | Decorates another `Bag` to provide additional behaviour.
  AbstractMapBag<E> | Abstract implementation of the `Bag` interface to simplify the creation of subclass implementations.
  AbstractMapBag.MutableInteger | Mutable integer class for storing the data.
  AbstractSortedBagDecorator<E> | Decorates another `SortedBag` to provide additional behaviour.
  CollectionBag<E> | Decorates another `Bag` to comply with the Collection contract.
  CollectionSortedBag<E> | Decorates another `SortedBag` to comply with the Collection contract.
  HashBag<E> | Implements `Bag`, using a `HashMap` to provide the data storage.
  PredicatedBag<E> | Decorates another `Bag` to validate that additions match a specified predicate.
  PredicatedSortedBag<E> | Decorates another `SortedBag` to validate that additions match a specified predicate.
  SynchronizedBag<E> | Decorates another `Bag` to synchronize its behaviour for a multi-threaded environment.
  SynchronizedSortedBag<E> | Decorates another `SortedBag` to synchronize its behaviour for a multi-threaded environment.
  TransformedBag<E> | Decorates another `Bag` to transform objects that are added.
  TransformedSortedBag<E> | Decorates another `SortedBag` to transform objects that are added.
  TreeBag<E> | Implements `SortedBag`, using a `TreeMap` to provide the data storage.
  UnmodifiableBag<E> | Decorates another `Bag` to ensure it can't be altered.
  UnmodifiableSortedBag<E> | Decorates another `SortedBag` to ensure it can't be altered.

## Package org.apache.commons.collections4.bag Description

This package contains implementations of the `Bag` and `SortedBag` interfaces. A bag stores an object and a count of the number of occurrences of the object.

The following implementations are provided in the package:

- HashBag - implementation that uses a HashMap to store the data
- TreeBag - implementation that uses a TreeMap to store the data

The following decorators are provided in the package:

- Synchronized - synchronizes method access for multi-threaded environments
- Unmodifiable - ensures the bag cannot be altered
- Predicated - ensures that only elements that are valid according to a predicate can be added
- Transformed - transforms each element added to the bag
- Collection - ensures compliance with the java.util.Collection contract

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.