The collection is a type of container that holds multiple elements in a single unit. The Java Collection Framework in the java.util package has a lot of interfaces and utilities.
The difference between the collection, Collection, and Collections:
collection: It represents any data structure in which objects are stored and iterated.
Collection: It is java.util.Collection interface. Set, List, and Queue extend from this Interface. This interface declares various methods like add(), remove(), size(), contains() and iterator().
Collections: Its a java.util.Collections class that contain static utility methods for use with Java collection Framework.
Java Collection Framework:
The Java Collection Framework is a combined architechture for representing and manipulating collections. All collections framework has Interfaces, Implementations, and Algorithms.
Interfaces: Being abstract they allow collections to be manipulated independently.
Implementation: also called the class in java. These are the reusable implementation of collection interface.
Algorithm: These are useful computations, usually written in the form of methods. These methods are written only once and can be used whenever and wherever needed hence called polymorphic and also reusable. example: Sorting, Searching, etc.
Operations on Collection:
- Add objects to the Collection.
- Remove objects from the collection.
- Find if an object (or group of objects) is contained in the Java collection Framework.
- Retrieve an object from the collection.
- Iterate through the collection.
Key Classes and Interfaces
They encapsulate different types of collections.
Core Concrete Classes
Not all the collections in the Java Collection Framework implement the Collection Interface. Specifically, none of the Map related classes and interfaces extend from Collection. Therefore, HashTable, HashMap, SortedMap, LinkedHashMap and TreeMap do not extend from Collection.
The class and interface hierarchy for collections
Note that all the core collection interfaces are generic. A generic type is a generic class or interface that is parameterized over types. For example, consider the following declaration of Collection interface.
public interface Collection<E>...
<E> tells that the interface is generic. While creating an instance of Collection the type of object contained must be specified as this would help the compiler to check if the object you are putting into the collection is correct.
Exceptions in collections:
Thrown when a collection cannot be modified.
Thrown when one object is incompatible with other.
Thrown when an attempt is made to store a null object in a Collection.
Thrown when an invalid argument is used
Methods common to all collections:
|boolean add(Object obj)||Adds objects to the collection|
|boolean addAll(Collection c)||Adds all objects of the collection c
to the invoking collection
|void clear()||Clears all the elements from
the invoking collection
|boolean remove(Object obj)||removes an object from collection|
|boolean removeAll(Collection c)||removes all objects of collection c
from the invoking collection
|boolean contains(Object obj)||To check whether the object specifies
is present in collection or not
|boolean containsAll(Collection c)||To check if all the elements of
collection c are present in the invoking
collection or not
|boolean retainAll(Collection c)||removes all the elements from the
invoking collection expect those in
|boolean isEmpty()||returns true is collection is empty
|int size()||returns the number of elements
present in the collection