Collection

Collection - основные методы работы с простыми наборами элементов

size(), isEmpty(), add(E e)

Map - базовые методы для работы с данными вида «ключ — значение»

From JDK 1.2, Java 1.5 + дженерики,

Java 8 + лямбды


Интерфейс Map

Hashtable – can’t contain null,

Almost all methods is synchronized

HashMapnull, synchronized,

не является упорядоченной: порядок хранения элементов зависит от хэш-функции.

LinkedHashMap - порядок итерирования равен порядку добавления элементов благодаря двунаправленным связям между элементами (аналогично LinkedList)

из-за этого занимает больше память

TreeMap — реализация Map основанная на красно-чёрных деревьях, является упорядоченной, can use Comparator for order(default use "natural ordering"). 2 интерфейса: NavigableMap (поиск по дереву), SortedMap - упорядоченная по ключам коллекция

WeakHashMap - хэш-таблица с weak references

Интерфейс List

Vector — динамический массив объектов, null, synchronized

Stack - LIFO (last-in-first-out),

synchronized (excluding push)

ArrayList - null, based on array

LinkedList - null, двунаправленный связный список можно использовать как стек или очередь

Интерфейс Set - в математике «множество»

неупорядоченная коллекция, которая не может содержать дублирующиеся данные.

HashSet - база - HashMap, Хранит без порядка.(ключ - добавляемый элемент, значение - пустышка Object())

LinkedHashSet - то же что и HashSet, но база - LinkedHashMap и потому хранит порядок добавления.

TreeSet - красно-чёрные деревья и Comparator или "natural ordering"

Интерфейс Queue (FIFO (first-in-first-out))

PriorityQueue - единственная прямая реализация Queue (Java 1.5) null, Comparator или "natural ordering"

ArrayDeque - FIFO, LIFO (last-in-first-out)(Java 1.6), null, faster then Stack as LIFO, and faster than LinkedList as FIFO