# Package org.apache.commons.collections4

package org.apache.commons.collections4
Interfaces and utilities shared across all packages.

The following collection implementations are provided in the package:

- ArrayStack - a non synchronized Stack that follows the same API as `java.util Stack`

- Related Packages
  Package
  Description
  org.apache.commons.collections4.bag
  Implements the `Bag` and `SortedBag` interfaces.
  org.apache.commons.collections4.bidimap
  Implements the `BidiMap`, `OrderedBidiMap` and `SortedBidiMap` interfaces.
  org.apache.commons.collections4.bloomfilter
  Implements Bloom filter classes and interfaces.
  org.apache.commons.collections4.collection
  Implementations of the `Collection` interface.
  org.apache.commons.collections4.comparators
  Implements the `Comparator` interface.
  org.apache.commons.collections4.functors
  Implements the `Closure`, `Predicate`, `Transformer` and `Factory` interfaces.
  org.apache.commons.collections4.iterators
  Implements the `Iterator` interface.
  org.apache.commons.collections4.keyvalue
  Implements collection and map related key/value classes.
  org.apache.commons.collections4.list
  Implements the `List` interface.
  org.apache.commons.collections4.map
  Implements the `Map`, `IterableMap`, `OrderedMap` and `SortedMap` interfaces.
  org.apache.commons.collections4.multimap
  Implements the `MultiValuedMap` interfaces.
  org.apache.commons.collections4.multiset
  Implements the `MultiSet` interface.
  org.apache.commons.collections4.properties
  Extends and customizes the behavior of `Properties`.
  org.apache.commons.collections4.queue
  Implements the `Queue` interface.
  org.apache.commons.collections4.sequence
  Compares two sequences of objects.
  org.apache.commons.collections4.set
  Implements the `Set`, `SortedSet` and `NavigableSet` interfaces.
  org.apache.commons.collections4.splitmap
  Implements the "split map" concept.
  org.apache.commons.collections4.trie
  Implements the `Trie` interface.
- Class
  Description
  ArrayStack<E>
  Deprecated.
  Use `ArrayDeque` instead (available from Java 1.6)
  Bag<E>
  Deprecated.
  Since 4.6.0, use `MultiSet` instead; see the migration notes above.
  BagUtils
  Deprecated.
  Since 4.6.0, use `MultiSetUtils` instead.
  BidiMap<K,V>
  Defines a map that allows bidirectional lookup between key and values.
  BoundedCollection<E>
  Defines a collection that is bounded in size.
  BoundedMap<K,V>
  Defines a map that is bounded in size.
  Closure<T>
  Defines a functor interface implemented by classes that do something.
  ClosureUtils
  `ClosureUtils` provides reference implementations and utilities for the Closure functor interface.
  CollectionUtils
  Provides utility methods and decorators for `Collection` instances.
  ComparatorUtils
  Provides convenient static utility methods for `Comparator` objects.
  EnumerationUtils
  Provides utility methods for `Enumeration` instances.
  Equator<T>
  An equation function, which determines equality between objects of type T.
  Factory<T>
  Defines a functor interface implemented by classes that create objects.
  FactoryUtils
  `FactoryUtils` provides reference implementations and utilities for the Factory functor interface.
  FluentIterable<E>
  A FluentIterable provides a powerful yet simple API for manipulating Iterable instances in a fluent manner.
  FunctorException
  Runtime exception thrown from functors.
  Get<K,V>
  The "read" subset of the `Map` interface.
  IterableGet<K,V>
  The "read" subset of the `Map` interface.
  IterableMap<K,V>
  Defines a map that can be iterated directly without needing to create an entry set.
  IterableSortedMap<K,V>
  `SortedMap` + `OrderedMap`.
  IterableUtils
  Provides utility methods and decorators for `Iterable` instances.
  IteratorUtils
  Provides static utility methods and decorators for `Iterator` instances.
  KeyValue<K,V>
  Defines a simple key value pair.
  ListUtils
  Provides utility methods and decorators for `List` instances.
  ListValuedMap<K,V>
  Defines a map that holds a list of values against each key.
  MapIterator<K,V>
  Defines an iterator that operates over a `Map`.
  MapUtils
  Provides utility methods and decorators for `Map` and `SortedMap` instances.
  MultiMap<K,V>
  Deprecated.
  Since 4.1, use `MultiValuedMap` instead
  MultiMapUtils
  Provides utility methods and decorators for `MultiValuedMap` instances.
  MultiSet<E>
  Defines a collection that counts the number of times an object appears in the collection.
  MultiSet.Entry<E>
  An unmodifiable entry for an element and its occurrence as contained in a MultiSet.
  MultiSetUtils
  Provides utility methods and decorators for `MultiSet` and `SortedMultiSet` instances.
  MultiValuedMap<K,V>
  Defines a map that holds a collection of values against each key.
  OrderedBidiMap<K,V>
  Defines a map that allows bidirectional lookup between key and values and retains and provides access to an ordering.
  OrderedIterator<E>
  Defines an iterator that operates over an ordered container.
  OrderedMap<K,V>
  Defines a map that maintains order and allows both forward and backward iteration through that order.
  OrderedMapIterator<K,V>
  Defines an iterator that operates over an ordered `Map`.
  Predicate<T>
  Defines a functor interface implemented by classes that perform a predicate test on an object.
  PredicateUtils
  `PredicateUtils` provides reference implementations and utilities for the Predicate functor interface.
  Put<K,V>
  The "write" subset of the `Map` interface.
  QueueUtils
  Provides utility methods and decorators for `Queue` instances.
  ResettableIterator<E>
  Defines an iterator that can be reset back to an initial state.
  ResettableListIterator<E>
  Defines a list iterator that can be reset back to an initial state.
  SetUtils
  Provides utility methods and decorators for `Set` and `SortedSet` instances.
  SetUtils.SetView<E>
  An unmodifiable view of a set that may be backed by other sets.
  SetValuedMap<K,V>
  Defines a map that holds a set of values against each key.
  SortedBag<E>
  Deprecated.
  Since 4.6.0, use `SortedMultiSet` instead; see the `Bag` Javadoc for migration notes.
  SortedBidiMap<K,V>
  Defines a map that allows bidirectional lookup between key and values and retains both keys and values in sorted order.
  SortedMultiSet<E>
  Defines a type of `MultiSet` that maintains a sorted order among its unique representative members.
  SplitMapUtils
  Utilities for working with "split maps:" objects that implement `Put` and/or `Get` but not `Map`.
  Transformer<T,R>
  Defines a functor interface implemented by classes that transform one object into another.
  TransformerUtils
  `TransformerUtils` provides reference implementations and utilities for the Transformer functor interface.
  Trie<K,V>
  Defines the interface for a prefix tree, an ordered tree data structure.
  TrieUtils
  A collection of `Trie` utilities.
  Unmodifiable
  Marker interface for collections, maps and iterators that are unmodifiable.