# Package org.apache.commons.collections.bag

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

See: Description

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

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

This package contains implementations of the `Bag` and `SortedBag` interfaces. A bag stores an object and a count of the number of occurences 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
- Typed - ensures that only elements that are of a specific type can be added
- Transformed - transforms each element added to the bag

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