Java 2 Standard Edition (J2SE) introduced the Collections API—a
dramatic improvement over Vector
and
Hashtable
in Java 1.1. This new API
provides Set
, List
, Map
,
and Iterator
interfaces with various
implementations addressing different needs for different applications.
Despite the additions and improvements, there are still gaps in the Java's
Collections API—functionality that is addressed by a supplemental library,
Commons Collections. Most of the features introduced in Commons
Collections are easily anticipated extensions of the Java 2 platform: a
reversible Comparator
or a Bag
interface, for example. Other concepts in
Commons Collections are innovative additions to the J2SE—predicated
collections, self-validating collections, set operations, and lazy
collections using transformers. Commons Collections 3.0 also introduces
the concept of functors (see Chapter
4).
Java 5.0 (a.k.a. Tiger) has introduced a number of new language
features and improvements to the Collections API. A Queue
class and type-safe generics are two major
additions that will become available to most programmers with the
production-ready release of 5.0. Some recipes in this chapter introduce
utilities that overlap the functionality of 5.0, and, if a recipe
introduces a utility with an analog in 5.0, an effort has been made to
identify any opportunity to achieve the same result with new 5.0 classes
and features.