Collection Framework
Collection Framework
Collections in Java
The Collection in Java is a framework that provides an architecture to store and manipulate the group of
objects.Java Collections can achieve all the operations that you perform on a data such as searching,
sorting, insertion, manipulation, and deletion.
Java Collection means a single unit of objects. Java Collection framework provides many interfaces (Set,
List, Queue, Deque) and classes (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet,
TreeSet).
The Collection framework represents a unified architecture for storing and manipulating a group of
objects. It has:
1. Interfaces and its implementations, i.e., classes
2. Algorithm
Hierarchy of Collection Framework
Let us see the hierarchy of Collection framework. The java.util package contains all
the classes and interfaces for the Collection framework.
Collection Interface
The Collection interface is the interface which is implemented by all the classes in the collection
framework. It declares the methods that every collection will have. In other words, we can say that the
Collection interface builds the foundation on which the collection framework depends.Some of the
methods of Collection interface are Boolean add ( Object obj), Boolean addAll ( Collection c), void
clear(), etc. which are implemented by all the subclasses of Collection interface.
List Interface
List interface is the child interface of Collection interface. It inhibits a list type data structure in which we
can store the ordered collection of objects. It can have duplicate values. List interface is implemented by
the classes ArrayList, LinkedList, Vector, and Stack.
Program-1
Program-2
LinkedList
LinkedList implements the Collection interface. It uses a doubly linked list internally to store the
elements. It can store the duplicate elements. It maintains the insertion order and is not synchronized. In
LinkedList, the manipulation is fast because no shifting is required. Consider the following example.
Vector
Vector uses a dynamic array to store the data elements. It is similar to ArrayList.
However, It is synchronized and contains many methods that are not the part of
Collection framework.Consider the following example.
Stack
The stack is the subclass of Vector. It implements the last-in-first-out data structure,
i.e., Stack. The stack contains all of the methods of Vector class and also provides its
methods like boolean push(), boolean peek(), boolean push(object o), which defines its
properties.Consider the following example.
Queue Interface
Queue interface maintains the first-in-first-out order. It can be defined as an ordered
list that is used to hold the elements which are about to be processed. There are
various classes like PriorityQueue, Deque, and ArrayDeque which implements the
Queue interface.
There are various classes that implement the Queue interface, some of them are given
below.
PriorityQueue
The PriorityQueue class implements the Queue interface. It holds the elements or
objects which are to be processed by their priorities. PriorityQueue doesn't allow null
values to be stored in the queue.
Deque Interface
Deque interface extends the Queue interface. In Deque, we can remove and add the
elements from both the side. Deque stands for a double-ended queue which enables us
to perform the operations at both the ends.
ArrayDeque is faster than ArrayList and Stack and has no capacity restrictions.
Set Interface
Set Interface in Java is present in java.util package. It extends the Collection interface.
It represents the unordered set of elements which doesn't allow us to store the
duplicate items. We can store at most one null value in Set. Set is implemented by
HashSet, LinkedHashSet, and TreeSet.
TreeSet
Java TreeSet class implements the Set interface that uses a tree for storage. Like
HashSet, TreeSet also contains unique elements. However, the access and retrieval time
of TreeSet is quite fast. The elements in TreeSet stored in ascending order.
Difference between Array And ArrayList
An array is a dynamically-created
The ArrayList is a class of
object. It serves as a container that
Java Collections framework. It contains
Definition holds the constant number of
popular classes like Vector, HashTable,
values of the same type. It has a
and HashMap.
contiguous memory location.
Static/
Array is static in size. ArrayList is dynamic in size.
Dynamic
Iterating We use for loop or for each loop to We use an iterator to iterate over
Values iterate over an array. ArrayList.
Adding We can add elements in an array by Java provides the add() method to add
Elements using the assignment operator. elements in the ArrayList.
Single/
Multi- Array can be multi-dimensional. ArrayList is always single-dimensional.
Dimensional
ArrayList LinkedList
3) An ArrayList class can act as a list only LinkedList class can act as a list and
because it implements List only. queue both because it implements List and
Deque interfaces.