Collections
in Java are used in almost every application. Java Collections Framework is one
of the core part of Java programming language.
What is Java Collections Framework?
Collections are like containers that groups multiple items in a single unit. For example; a jar of chocolates, list of names etc. Collections are used almost in every programming language and when Java arrived, it also came with few Collection classes; Vector, Stack, Hashtable, Array. Java 1.2 provided Collections Framework that is architecture to represent and manipulate Collections in java in a standard way. Java Collections Framework consists of following parts:- Interfaces: Java Collections Framework interfaces provides
the abstract data type to represent collection.
java.util.Collection
is the root interface of Collections Framework. It is on the top of Collections framework hierarchy. It contains some important methods such assize()
,iterator()
,add()
,remove()
,clear()
that every Collection class must implement. Some other important interfaces arejava.util.List
,java.util.Set
,java.util.Queue
andjava.util.Map
. Map is the only interface that doesn’t inherits from Collection interface but it’s part of Collections framework. All the collections framework interfaces are present injava.util
package. - Implementation Classes: Collections in Java provides core
implementation classes for collections. We can use them to create
different types of collections in java program. Some important collection
classes are
ArrayList
,LinkedList
,HashMap
,TreeMap
,HashSet
,TreeSet
.These classes solve most of our programming needs but if we need some special collection class, we can extend them to create our custom collection class.
Java 1.5 came up with thread-safe collection
classes that allowed to modify Collections while iterating over it, some of
them are
CopyOnWriteArrayList
,
ConcurrentHashMap
,
CopyOnWriteArraySet
.
These classes are in java.util.concurrent package. All the collection classes
are present in java.util
and java.util.concurrent
package.- Algorithms: Algorithms are useful methods to provide some common functionalities, for example searching, sorting and shuffling.
Benefits of Java Collections Framework
Java Collections framework have following benefits:- Reduced Development Effort – It comes with almost all common types of collections and useful methods to iterate and manipulate the data. So we can concentrate more on business logic rather than designing our collection APIs.
- Increased Quality – Using core collection classes that are well tested increases our program quality rather than using any home developed data structure.
- Reusability and Interoperability
- Reduce effort – to learn any new API if we use core collection API classes.
Java Collections Interfaces
Java collection interfaces are the foundation of the Java Collections Framework. Note that all the core collection interfaces are generic; for examplepublic
interface Collection<E>
. The <E> syntax is for Generics
and when we declare Collection, we should use it to specify the type of Object
it can contain. It helps in reducing run-time errors by type-checking the
Objects at compile-time.To keep the number of core collection interfaces manageable, the Java platform doesn’t provide separate interfaces for each variant of each collection type. If an unsupported operation is invoked, a collection implementation throws an
UnsupportedOperationException
.Collection Interface
This is the root of the collection hierarchy. A collection represents a group of objects known as its elements. The Java platform doesn’t provide any direct implementations of this interface.Iterator Interface
Iterator interface provides methods to iterate over any Collection. We can get iterator instance from a Collection usingiterator
method. Iterator takes
the place of Enumeration
in the Java Collections Framework. Iterators
allow the caller to remove elements from the underlying collection during the
iteration. Iterators in collection classes implement Iterator Design Pattern.Set Interface
Set is a collection that cannot contain duplicate elements. This interface models the mathematical set abstraction and is used to represent sets, such as the deck of cards.The Java platform contains three general-purpose Set implementations:
HashSet
,
TreeSet
,
and LinkedHashSet
.
Set interface doesn’t allow random-access to an element in the Collection. You
can use iterator or foreach loop to traverse the elements of a Set.List Interface
List is an ordered collection and can contain duplicate elements. You can access any element from it’s index. List is more like array with dynamic length. List is one of the most used Collection type.ArrayList
and LinkedList
are implementation classes of List interface.List interface provides useful methods to add an element at specific index, remove/replace element based on index and to get a sub-list using index.
Queue Interface
Queue is a collection used to hold multiple elements prior to processing. Besides basic Collection operations, a Queue provides additional insertion, extraction, and inspection operations.Dequeue Interface
A linear collection that supports element insertion and removal at both ends. The name deque is short for “double ended queue” and is usually pronounced “deck”. Most Deque implementations place no fixed limits on the number of elements they may contain, but this interface supports capacity-restricted deques as well as those with no fixed size limit.Map Interface
Java Map is an object that maps keys to values. A map cannot contain duplicate keys: Each key can map to at most one value.The Java platform contains three general-purpose Map implementations:
HashMap
,
TreeMap
,
and LinkedHashMap
.The basic operations of Map are
put
, get
, containsKey
,
containsValue
,
size
,
and isEmpty
.
No comments:
Post a Comment