Overview of Java Collections Framework
This article provides a high‑level overview of Java’s Collections Framework, explaining its core design principles, the top‑level Collection and Map interfaces, their sub‑interfaces such as List, Set, Queue, and Map, and the typical implementation naming conventions, helping developers understand and analyze collection classes.
Click the “Java Captain” button and select “Pin public account” to receive articles promptly.
Recently I plan to review the Java Collections Framework and analyze its source code, both to optimize programs and to learn how the JDK implements an elegant and efficient library.
Before diving into specific classes, this article gives a high‑level description of the Java Collections Framework, outlining its concepts and conventions to aid later analysis.
Collections Framework
A collection represents a group of objects (similar to an array, but with dynamic size). The Java Collections Framework defines a set of standards for representing and manipulating collections, decoupling usage from implementation details.
In essence, a collection can be seen as a tiny database supporting the four basic operations – add, delete, update, and query. When learning a concrete collection class, understanding the time‑space complexity of these operations is essential.
Design Philosophy
The main idea is to provide a "small and beautiful" API that is programmer‑friendly and allows rapid adoption of new features.
To keep core interfaces minimal, the top‑level interfaces (Collection and Map) do not differentiate mutability, modifiability, or resizability. Optional operations can throw UnsupportedOperationException to indicate lack of support, and implementers must document unsupported operations.
The top‑level interfaces only contain:
Basic CRUD operations.
Methods that a compelling performance reason would justify overriding.
All collection classes must also support convenient interaction, including conversion to and from arrays without inheriting the Collection class, and treating Map as a collection.
Two Main Interfaces: Collection and Map
The framework’s inheritance hierarchy has two top‑level interfaces: Collection – represents a group of pure data. Map – represents a set of key‑value pairs.
Classes extending Collection or Map typically provide two standard constructors:
A no‑argument constructor that creates an empty collection.
A constructor that accepts another Collection or Map to create a new collection with the same elements.
Although interfaces cannot declare constructors, this convention is followed by all current collection implementations.
Collection
java-collection-hierarchy
The Collection interface has three primary sub‑interfaces: Set – a collection that contains no duplicate elements. List – an ordered collection that may contain duplicates. Queue – added in JDK 1.5, designed for holding elements prior to processing rather than processing them.
Map
MapClassHierarchy
Although Map is not a true collection, it provides three "collection views": a set of keys, a collection of values, and a set of key‑value mappings, enabling collection‑like operations.
Collection Implementations
Classes that implement collection interfaces usually follow the naming pattern <Implementation>+<Interface>. The common implementation classes are listed in the table below (image omitted for brevity).
Conclusion
This is just the beginning; more detailed articles will follow. Stay tuned.
All future source‑code analyses will be based on Oracle JDK 1.7.0_71.
$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)Original source: liujiacai.net/blog/2015/09/01/java-collection-overview/
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
