Provides several classes which implement data structures called collections. These collection classes provide the following features not found in the Java 1.1 core libraries:

interface based
  The classes are designed around several key interfaces. All collections implement ``com.sas.collection.StaticCollectionInterface``. This interface itself extends several smaller interfaces:
  `com.sas.util.Countable`
    defines the `count()` method;
  `com.sas.util.Enumerable`
    defines the `getItems()` method for obtaining a `java.util.Enumeration`;
  `com.sas.collection.ContentsChangedListener`
    defines the event subscription mechanism;
  `com.sas.PublicClonable`
    allows all collections to be cloned; and
  `java.io.Serializable`
    for serialization.

  `com.sas.collection.StaticOrderedCollectionInterface` and `com.sas.collection.OrderedCollectionInterface` defines access to ordered collections -- collections which access items via an integer index, much like an array. See also `com.sas.util.IndexedGetInterface` and `com.sas.util.IndexedSetInterface`

Model/View based design
  The collection classes fire a `com.sas.collection.ContentsChangedEvent` when the contents of the collection are modified, such as items being added to or removed from or replaced in the collection, or when an ordered collection is sorted or otherwise rearranged.
Sorting
  The ordered collections may be sorted using a flexible comparison interface, `com.sas.util.Comparator`.
Consistent API
  Whereas the different JDK collections class define similar operations with inconsistent names, the com.sas.collections use a much more uniform method naming convention, due mostly to the common interfaces the collections implement.

Key Interfaces

Below is a diagram which shows the significant interfaces in the collection classes, and how they inherit from one another. `com.sas.collection.StaticCollectionInterface` is the central interface. Click on an interface name to view the documentation for that interface.

The following are the most important interfaces in the `com.sas.collection` package:

1. `StaticOrderedCollectionInterface`
2. `StaticCollectionInterface`, `CollectionInterface`
3. `ContentsChangedListener`, `ContentsChangedSource`

Key Classes
The following are the key classes in the `com.sas.collection` package:

1. `OrderedCollection`, `OrderedListCollection`
2. `Collection`, `Set`
3. `Dictionary`,
4. `StringCollection`
5. `ContentsChangedEvent`
6. `AssociationList`

Utility Classes
The following classes serve utility roles. They are more useful for internal implementation of other classes, since they may not implement all of the collection or com.sas.Component interfaces

1. `PropertyBag`,
2. `LongKeyDictionary`
3. `Pair`, `PairFirst`, `PairSecond`
4. `StaticDictionary`, `StaticCollection`, `StaticOrderedCollection`,