Skip to main content

What is Collection framework in Java? Why we need Collection? Collection hierarchy in Java

Guide to Collection framework in Java with Examples | Guide for choose which collection to use

Collection framework in Java. need of Collection in Java

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 :

Collection framework class and interface hierarchy | Map interface

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 :


 

Comments

Popular posts from this blog

Queen's Attack II HackerRank Solution in Java with Explanation

Queen's Attack II Problem's Solution in Java (Chessboard Problem)   Problem Description : You will be given a square chess board with one queen and a number of obstacles placed on it. Determine how many squares the queen can attack.  A queen is standing on an n * n chessboard. The chess board's rows are numbered from 1 to n, going from bottom to top. Its columns are numbered from 1 to n, going from left to right. Each square is referenced by a tuple, (r, c), describing the row r and column c, where the square is located. The queen is standing at position (r_q, c_q). In a single move, queen can attack any square in any of the eight directions The queen can move: Horizontally (left, right) Vertically (up, down) Diagonally (four directions: up-left, up-right, down-left, down-right) The queen can move any number of squares in any of these directions, but it cannot move through obstacles. Input Format : n : The size of the chessboard ( n x n ). k : The number of obstacles...

Java Hashset HackerRank Solution | Programming Blog

Java Hashset HackerRank Solution with Explanation   Problem Statement :- In computer science, a set is an abstract data type that can store certain values, without any particular order, and no repeated values. {1,2,3} is an example of a set, but {1,2,2} is not a set. Today you will learn how to use sets in java by solving this problem. You are given n pairs of strings. Two pairs (a,b) and (c,d) are identical if a = c and b = d. That also implies (a,b) is not same as (b,a). After taking each pair as input, you need to print number of unique pairs you currently have. See full problem description in HackerRank Website :- https://www.hackerrank.com/challenges/java-hashset/problem Let's see solution of problem. import java.util.HashSet; import java.util.Scanner; public class Solution {     public static void main(String[] args) {         Scanner s = new Scanner(System.in);         System.out.println("Enter tot...