Java Collection Framework Hierarchy

In this article, we will discuss the Java collection framework hierarchy with diagrams. In this article, we will be focusing only on the collection framework hierarchy and if you want to learn Java collections framework in-depth then visit the below tutorial:
Learn all about collection framework at Java Collections Framework in Depth with Examples for Beginners
A collections framework is a unified architecture for representing and manipulating collections, enabling collections to be manipulated independently of implementation details.

What is a Collections Framework?

A collections framework is a unified architecture for representing and manipulating collections.
The collections framework consists of:
  • Collection interfaces - These interfaces represent different types of collections, such as Set, List, and Map. These interfaces form the basis of the framework.
  • General-purpose implementations - These are primary implementations of the collection interfaces such as ArrayList, LinkedList, HashSet, LinkedHashSet, HashMap etc.
  • Legacy implementations - The collection classes from earlier releases, Vector and Hashtable, were retrofitted to implement the collection interfaces.
  • Special-purpose implementations - Implementations designed for use in special situations such as CopyOnWriteArrayList, CopyOnWriteArraySet, EnumSet, EnumMap, WeakHashMap and IdentityHashMap etc.
  • Concurrent implementations - These implementations designed for highly concurrent use such as ConcurrentSkipListSetConcurrentHashMapConcurrentSkipListMap etc.
  • Wrapper implementations - Add functionality, such as synchronization, to other implementations.
  • Convenience implementations - High-performance "mini-implementations" of the collection interfaces.
  • Abstract implementations - Partial implementations of the collection interfaces to facilitate custom implementations such as AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList and AbstractMap.
  • Algorithms - Static methods that perform useful functions on collections, such as sorting a list.
  • Infrastructure - Interfaces that provide essential support for the collection interfaces.
  • Array Utilities - Utility functions for arrays of primitive types and reference objects. Not, strictly speaking, a part of the collections framework, this feature was added to the Java platform at the same time as the collections framework and relies on some of the same infrastructures.

Java Collections Framework Hierarchy

Let us see the hierarchy of Collection framework. The java.util package contains all the classes and interfaces for the Collection framework.

The collection interfaces are divided into two groups. The most basic interface, java.util.Collection interface has the following descendants and it's implementations:

 The other collection interfaces are based on java.util.Map and it's implementations:

1. Collection Interfaces

The collection interfaces are divided into two groups. The most basic interface, java.util.Collection has the following descendants:
  • java.util.Collection 
  • java.util.List
  • java.util.Set 
  • java.util.SortedSet 
  • java.util.NavigableSet 
  • java.util.Queue 
  • java.util.concurrent.BlockingQueue 
  • java.util.concurrent.TransferQueue 
  • java.util.Deque 
  • java.util.concurrent.BlockingDeque 
The other collection interfaces are based on java.util.Map and are not true collections:
  • java.util.Map
  • java.util.SortedMap
  • java.util.NavigableMap 
  • java.util.concurrent.ConcurrentMap 
  • java.util.concurrent.ConcurrentNavigableMap

2. Collection Implementations

Classes that implement the collection interfaces typically have names in the form of [Implementation-style][Interface] ( example: [Hash][Set]]

The general-purpose implementations are summarized in the following table:

The AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList, and AbstractMapclasses provide basic implementations of the core collection interfaces, to minimize the effort required to implement them.

3. Concurrent Collections

Applications that use collections from more than one thread must be carefully programmed. In general, this is known as concurrent programming. The Java platform includes extensive support for concurrent programming.
These concurrent-aware interfaces are available:
The following concurrent-aware implementation classes are available. See the API documentation for the correct usage of these implementations.

Learn collection interfaces with its implementations in-depth

You can learn everything about the Java collections framework here. Check out each article, tutorials, guides below gives you a hands-on experience.


List Implementations

General-Purpose List Implementations:
Special-Purpose List Implementations:
General-Purpose Set Implementations:
Special-Purpose Set Implementations:

Map Implementations

General-purpose Map Implementations:

Aggregate Operations(Streams)

Collections Helper/Utility Classes

          - Sorting
          - Shuffling
          - Searching
          - Composition
          - Finding Extreme Values

Convert Collections Examples

Collections Examples

Best Practices and Interviews