Almost all applications perform tasks against user data. Sometimes data is obtained from a user, tasks are performed against the data, and the result is returned immediately. More often, data is obtained, and then it is stored within the application for later use, and eventually tasks are performed against it. Applications make use of data structures to store data that can be utilized thoroughout the lifetime of an application instance. The Java language contains a number of data structures that are known as Collection types, and they can be utilized for this purpose. These data structures implement the java.util.Collection interface, which provides a variety of methods that are useful for adding, removing, and performing tasks against the data that is used with the collection.