Java Collections Framework

This tutorial will introduce you to the Java Collections Framework. Java Collections Framework is one of the most important topics. Because you can do a lot of data. Java Collections Framework provides interfaces and classes to represent and manipulate the data. Java Collections Framework reduces the efforts you put in programming, there is a small learning curve once understood you are good to go.

You can use the Java Collections Framework when you have a huge data set to process. For example, you have a list of cities that you first need to sort in ascending or descending order then the sorted list will have to be displayed on the GUI. In this case, collections are very useful. You can use the different type of collection classes depending on the use case. Follow the tutorial to understand the use cases of each type of collection with the example.

Before proceeding with this tutorial let’s acknowledge the confusion that people have around this topic.

  • Newbie to Java Collections Framework generally gets confused in calling it “Java Collection Framework” or “Java Collections Framework”. It is written as Java Collections Framework. It has Collection Interface and Collections Class. Collection Interface is the root interface of the Collections framework. Which means every single class in Collections Framework implements Collection interface directly or indirectly. And, Collections Class is a utility class contains static methods for doing operations on objects of classes which implements the Collection interface.
  • The second confusion is regarding Map, “whether it is a part of Collections Framework or not?” Map is an interface which does not extents the Collection interface so it is not a true collection.  However, these interfaces contain collection-view operations, which enable them to be manipulated as collections. Hence, studying under Java Collections Framework.
Concrete Class/Map  Interface  Duplicate   Elements  Ordered Sorted   Allow Null?
ArrayList List Yes By Index No Yes
Vector List Yes By Index No Yes
LinkedList List, Queue Yes By Index No Yes
HashSet Set No No Order No Yes
LinkedHashSet Set No By Insertion Order No Yes
TreeSet SortedSet No Sorted Natural/Custom No
HashMap Map unique keys No Order No Yes
HashTable Map unique keys No Order No No
LinkedHashMap Map unique keys By Insertion Order or Last Accessed No Yes
TreeMap SortedMap unique keys Key Order Natural/Custom No
PriorityQueue Queue Yes Natural Ordering Natural Ordering No

Let’s get started with the understanding of Java Collections Framework with the quick visual.

The diagram below is the extended version of Java Collections Framework but doesn’t show all the interfaces (like RandomAccess, Cloneable, Serializable) so that it is easy to understand at the same time give a clear picture of what the hierarchy looks like.
Interfaces, Abstract classes, and Classes are marked clearly. The classes are in blue and provide the necessary methods for programming.

 
Java Collections Framework: As its name suggests, it is a collection, collection of objects called elements. A collection can be ordered or unordered some collections allow duplicate and some are not. We will see
Collection Interface: You can not use the Collection Interface directly in the code. Instead, it has been extended by List, Set, and Queue.
List Interface: List is ordered means preserve the order, but not sorted. It allows duplicate elements and null as well.Elements can be accessed by using the index number, indexing starts from zero.
Set Interface: Set doesn’t allow duplicates elements. But other features can vary depending on the implementing class like HashSet doesn’t preserve order but LinkedHashSet and TreeSet does.
Queue Interface: A Java Queue is a collection that holds elements before performing any operation. Here Objects are added to the tail and removed from the head and the object added first will be removed first.
Map Interface: Map, as said does not extend Collection Interface so represent separately. Boxes in blue are the classes that are used for programming. It contains Key-Value pair. Key will be unique. No class extending Map preserves the order accept TreeMap class
JAVA MAP INTERFACE
 
Download Examples from GitHub
Download Examples from codedbug GitHub repo 

References:

https://docs.oracle.com/javase/9/docs/api/overview-summary.html
https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html

1 thought on “Java Collections Framework

Leave a Reply

Contact Us
close slider
Contact Us

How can we help you with?