Commons-Collections contains implementations, enhancements and utilities that complement the Java Collections Framework.
The Apache Commons Collections Framework component adds a significant amount of enhancements to the standard JDK collections. These enhancements come in the form of new interfaces, new implementations and utility classes.
See also the {@code java.util} package for the standard Java collections.
Commons-Collections defines a number of key interfaces:
Interface | Description |
---|---|
{@link org.apache.commons.collections.Bag} | A new {@code Collection} subinterface that stores each object together with the number of occurrences. Methods are provided to get the number of occurrences, and to add and remove a certain number of that object. |
{@link org.apache.commons.collections.Buffer} | A new {@code Collection} subinterface that allows objects to be removed in some well-defined order. Methods enable the next item to be peeked and removed. |
{@link org.apache.commons.collections.BidiMap} | A new {@code Map} subinterface that allows lookup from key to value and from value to key with equal ease. |
{@link org.apache.commons.collections.OrderedMap} | A new {@code Map} subinterface that is used when a map has an order, but is not sorted. Methods enable bidirectional iteration through the map. |
{@link org.apache.commons.collections.MapIterator} | A new {@code Iterator} subinterface specially designed for maps. This iterator avoids the need for entrySet iteration of a map, and is simpler to use. |
{@link org.apache.commons.collections.ResettableIterator} | A new {@code Iterator} subinterface that allows the iteration to be reset back to the start. Many iterators in this library have this functionality. |
{@link org.apache.commons.collections.Closure} {@link org.apache.commons.collections.Predicate} {@link org.apache.commons.collections.Transformer} {@link org.apache.commons.collections.Factory} |
A group of functor interfaces that provide plugin behavior to various collections and utilities. |
In addition to the interfaces, there are many implementations. Consult each subpackage for full details of these.