Java Collections Framework — набір зв'язаних класів та інтерфейсів, які реалізують commonly reusable collection структур даних. Він був вперше спроектований і розроблений Джошуа Блохом.

Фреймворк був розроблений для досягнення таких цілей, як: Фреймворк повинен бути високопродуктивний. Реалізації фундаментальних колекцій (динамічні масиви, зв'язані списки, дерева та хеш-таблиці) повинні бути високоефективними. Система повинна дозволяти різним типам колекцій працювати аналогічним чином і з високим ступенем взаємодії. Фреймворк має легко поширювати та / або адаптувати колекцію.

Архітектура Майже всі колекції породжуються інтерфейсом java.util.Collection, який визначає основну структуру всіх колекцій. Його методи: — додавання елементу до колекції, — видалення елементу з колекції, — повертає масив елементів, які є в колекції, — перевіряє наявність заданого елементу в колекції та інші. Інтерфейс Collection успадковується від інтерфейсуjava.lang.Iterable

Інтерфейс List В JCF списки реалізуються через інтерфейс java.util.List. Два конкретних класи імплементують List. Перший java.util.ArrayList ,який реалізує список на основі масиву. Другий java.util.LinkedList , який реалізує java.util.List , як двоз'язний список.

Інтерфейс Set Інтерфейс java.util.Set реалізує концепцію множини. Множина не може містити двох і більше одникових елементів, тобто всі елементи, які містяться в множині, є унікальними. Також множина не встановлює порядок. Set імплементується java.util.HashSet, java.util.LinkedHashSet і java.util.TreeSet.

Примітки 'The Java Tutorials - Collections' by Josh Bloch

Generic Types Java Generics and Collections

Taming Tiger: The Collections Framework Collections Lessons

CollectionSpy - a Java profiler that focuses on the Collections Framework Collections benchmark (insertions, iterations) Java SE 1.8