HashMap

HashMap — основан на хэш-таблицах, реализует интерфейс Map (что подразумевает хранение данных в виде пар ключ/значение). Ключи и значения могут быть любых типов, в том числе и null. Данная реализация не дает гарантий относительно порядка элементов с течением времени.

HashMap представляет из себя массив ссылок на цепочки пар ключ/значение: Node[] table.
Структура HashMap
... Читать дальше »

Stack

Stack наследуется от Vector со всеми его недостатками.

Помимо методов классического стека (push, pop, peek, size), Stack имеет много дополнительных методов, а это уже нехороший дизайн.

В качестве замены рекомендуется ArrayDeque – это больше, чем обычный стек, но он допускает манипулирование только двух концов списка, а не произвольный доступ ко всему.

Vector

Устаревший аналог ArrayList.
Vector – синхронизированная коллекция. При этом синхронизируется каждая операция, а в большинстве случаев требуется синхронизировать набор операций. Поэтому Vector работает медленнее, чем ArrayList.
Использование Vector менее удобно из-за длинных названий методов.

LinkedList

LinkedList — связанный двунаправленный список. Как и в ArrayList, порядок хранения элементов в LinkedList соответствует последовательности их добавления.

Поскольку LinkedList представляет из себя связанный список, каждый его элемент ссылается на 2 соседних - предыдущий и следующий. Также Класс LinkedList содержит ссылки на первый и последний элементы списка (поля first, last).
Структура LinkedList
... Читать дальше »

ArrayList

ArrayList — индексированный список. Каждому элементу соответствует индекс типа int.

ArrayList позволяет хранить любые значения в том числе и null.

Внутри себя ArrayList хранит элементы в обычном массиве. Если ArrayList необходимо увеличить или уменьшить свой размер, он создаёт новый массив и копирует в него данные.
Структура ArrayList
... Читать дальше »

Коллекции. Иерархия

Коллекциями/контейнерами в Java принято называть классы, основная цель которых – хранить набор данных ссылочных типов.

По сравнению с массивами, коллекции сами регулируют свой размер. Коллекции предоставляют уже готовые структуры данных, которые позволяют быстрее и удобнее выполнять поиск, удаление, вставку. Коллекции являются универсальным способом хранения и передачи данных, что упрощает взаимодействие разных частей кода. Иерархия классов коллекций Map не наследует интерфейс Collection. В отличие от List и Set, Map является абсолютно другой структурой данных, а следовательно, и методы работы с ней отличаются от интерфейса Collection.
« 1 2 3