Commons Collections

Collections aims to provide:

  • New implementations of the JDK Collection, Set, List and Map interfaces
  • Additional related collection interfaces and implementations
  • Abstract base classes to simplify the writing of new implementations
  • A testing framework, as a published jar, that excercises the API fully

The Javadoc of the latest version is available.


Releases & Compatability

The latest release (v3.2) can be downloaded here.

Two releases of Collections are currently in common use - v2.x and v3.x. These releases are source compatible (with deprecations). Unfortunately, due to human error, these releases are binary incompatible in the IteratorUtils class. If you don't use this class, then the two versions are binary compatible.

All users of v2.1 should upgrade to v2.1.1, and all users of v3.0 should upgrade to v3.1 to help solve the issue.

Unofficial Releases

John Watkinson and Matt Hall have a release of a fully type safe Collections ported to Java 1.5 generics. It can be downloaded from for now and commented on in the development mailing lists.

Upcoming Releases

  • A 3.3 release is on the horizon, primarily to get OSGi support into an official release.
  • Tentative plans are for a 4.0 release immediately on the heels of 3.3, identical in features except with deprecated classes removed.
  • Work is progressing on a version of collections that is primarily aimed at using the Java 1.5 generics feature. This will not be based on the work already done at for reasons outlined in Generic Collections.


You can give feedback on what you would like included in future releases by contacting the mailing list, prefixing you email by [collections]. Alternatively add a comment here:


This article explains real world usage of Commons Collections and samples are provided for a few.

  • No labels