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

Sales by Match HackerRank Solution | Java Solution

HackerRank Sales by Match problem solution in Java   Problem Description : Alex works at a clothing store. There is a large pile of socks that must be paired by color for sale. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are. For example, there are n=7 socks with colors socks = [1,2,1,2,1,3,2]. There is one pair of color 1 and one of color 2 . There are three odd socks left, one of each color. The number of pairs is 2 .   Example 1 : Input : n = 6 arr = [1, 2, 3, 4, 5, 6] Output : 0 Explanation : We have 6 socks with all different colors, So print 0. Example 2 : Input : n = 10 arr = [1, 2, 3, 4, 1, 4, 2, 7, 9, 9] Output : 4 Explanation : We have 10 socks. There is pair of color 1, 2, 4 and 9, So print 4. This problem easily solved by HashMap . Store all pair of socks one by one in Map and check if any pair is present in Map or not. If pair is present then increment ans variable by 1 ...

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...