The java.util package provides interfaces and implementations for standard data structures:
List
Map
Set
Collection is the base interface for all collection types, with methods for adding, removing, and counting elements.
Iterator - Interface for iterating over a collection.
The collections have a single element type: Object. This has two side effects:
Primitives such as int, char, and boolean cannot be placed in collections without using their object wrappers (Integer, Character, Boolean).
It is up to the programmer to keep collections consistent, since one can add objects of multple types to a collection.
Unless explicitly specified in the documentation, assume Collection implementations are NOT thread safe. Why use the unsafe implementations at all? Because unless you really are sharing the collections among threads, they will be considerably faster than the thread-safe versions.