Collections

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

Фреймворк був розроблений для досягнення таких цілей, як:

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

Архітектура

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

Інтерфейс List

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

Інтерфейс Set

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

Примітки

    • 'The Java Tutorials - Collections' by Josh Bloch [Архівовано 10 червня 2010 у Wayback Machine.]
    • Generic Types [Архівовано 12 грудня 2017 у Wayback Machine.]
    • Java Generics and Collections [Архівовано 12 грудня 2017 у Wayback Machine.]
    • Taming Tiger: The Collections Framework [Архівовано 3 лютого 2009 у Wayback Machine.]
    • Collections Lessons
    • CollectionSpy - a Java profiler that focuses on the Collections Framework
    • Collections benchmark (insertions, iterations) Java SE 1.8