Guide to Collection framework in Java with Examples | Guide for choose which collection to use
In simple term, The Java Collections Framework is a collection of interfaces and classes which helps in storing and processing the data efficiently.
Java collections refer to a collection of individual objects that are represented as a single unit.
Whoever class or interface implements or extends Collection interface, they can use all method of collection interface. Some of frequently used methods :
- add()
- addAll()
- remove()
- removeAll()
- size()
- clear()
- isEmpty()
- contains()
Why we need Collection in Java?
As we all know we can use java Arrays for store, alter, delete, sort data then why we still need Collection?
- Arrays are not resizable and Collection is resizable.
- Java Collections Framework provides lots of different useful data types, like Linkedlist allows insertion anywhere in constant time.
- There are different implementation you can choose from for the same set of services : like, ArrayList or LinkedList, HashSet or SortedSet, etc.
- Collection allows programmers to write readable and maintainable code.
Collection framework hierarchy :
List Interface :
- List is child interface of Collection
- Duplicates are allowed and insertion order must be preserved
Classes under List interface :
- ArrayList (Class) (1.2 version)
- LinkedList (Class) (1.2 v)
- Vector (Class) (1.0 v)
- Stack (Class) (1.0 v)
Set Interface :
- List is child interface of Collection
- Duplicates are not allowed and insertion order does not preserved
Classes and Interfaces under Set interface :
- HashSet (Class) (1.2 v)
- LinkedHashSet (Class) (1.4 v)
- SortedSet (Interface) (1.2 v)
- NavigableSet (Interface) (1.6 v)
- TreeSet (Class) (1.2 v)
Queue Interface :
- Queue follows First In First Out (FIFO) order.
Classes and Interfaces under Set interface :
- PriorityQueue (Class) (1.5 v)
- BlockingQueue (Interface) (1.5 v)
Map Interface :
If we want to represent group of object as key-value pair then we should use Map interface.
Map is not child interface of Collection.
- Both keys and values are Objects only
- Duplicates keys are not allowed but values can be duplicated
Classes and Interfaces under Map interface :
- HashMap (Class) (1.2 v)
- LinkedHashMap (Class) (1.4 v)
- SortedMap (Interface) (1.2 v)
- NavigableMap (Interface) (1.6 v)
- TreeMap (Class) (1.2 v)
How to choose which collection we have to use in our code?
List :
ArrayList :
- It is combination of Array and List.
- Use when does not want to use Static array.
- Insertion order preserve and Duplication of data does not matter. Arraylist is sequential list.
- Better for storing and retrieval data frequently.
LinkedList :
- Insertion order preserve and Duplication of data does not matter.
- Better for data manipulation (insertion, deletion).
Vector :
- Vector is same as ArrayList except that all the Vector class methods are synchronized. Means vector class is Thread safe.
Stack :
- Want to use Last In First Out (LIFO) order of data.
Set :
HashSet :
- Duplication is not allowed.
- Insertion order does not preserve.
LinkedHashSet :
- Want to maintain insertion order.
- Duplicates are not allowed.
TreeSet :
- Want to sorted data.
- Duplicates are not allowed.
Queue :
PriorityQueue :
- Want to use First In First Out (FIFO) order. first element is removed first and last element is removed at last.
Map :
HashMap :
- When you want to store data as key-value pair. (Name -> Mobile No.).
- Does not maintain insertion order.
- Can store only one NULL key and many NULL value.
- Key contains only unique data, but value can be duplicates.
LinkedHashMap :
- Same as HashMap.
- Insertion order is maintain.
TreeMap :
- Also store Key-value pair.
- Want to sorted elements. Elements sorted by ascending order.
- Does not contains any NULL key. but value can.
- When read/write of elements is frequent, then TreeMap is good choice.
Happy learning... Happy coding...
Other articles :
- A Guide to Iterator in Java | hasNext(), next(), remove(), forEachRemaining() Methods
- Object Oriented Programming (OOP) concept in Java
- Most asked interview questions and answers for Java developers on Core Java
Comments
Post a Comment