Java Collection Framework
Вступление
Структура данных - это набор данных, организованных некоторым образом. Структура не только хранит данные, но также поддерживает операции для доступа и манипулирования данными. В пакете java.util содержится одна из самых мощных подсистем Java: платформа Collections. Платформа коллекций представляет собой сложную иерархию интерфейсов и классов, которые предоставляют самые современные технологии для управления группами объектов.
Вы можете выполнить следующие действия, используя Java Collection Framework,
- Добавить объекты в коллекцию
- Удалить объекты из коллекции
- Поиск объекта в коллекции
- Получить / получить объект из коллекции
- Выполните итерацию по коллекции для конкретной бизнес-функциональности.
Ключевые интерфейсы и классы каркаса коллекции
- коллекция (строчная c): она представляет собой любую из структур данных, в которых хранятся и повторяются объекты.
- Коллекция (заглавная C): на самом деле это интерфейс java.util.Collection, из которого расширяются Set, List и Queue.
- Коллекции (заглавная C и оканчивающиеся на s): это класс java.util.Collections, который содержит кучу статических служебных методов для использования с коллекциями.
Есть некоторые другие классы в структуре коллекции, которые не расширяют Интерфейс Коллекции, они реализуют интерфейс Карты.
Можно сказать, что коллекция имеет 4 основных вкуса, как показано ниже,
- Списки:
Интерфейс List расширяет коллекцию для определения упорядоченной коллекции с разрешенными дубликатами. Интерфейс List добавляет позиционно-ориентированные операции, а также новый итератор списка, который позволяет пользователю обходить список в двух направлениях. ArrayList, LinkedList и vector являются классами, реализующими интерфейс List. - Наборы:
Интерфейс Set расширяет интерфейс Collection. Это позволит убедиться, что экземпляр Set не содержит повторяющихся элементов. Конкретный класс реализует хэш-код и методы equals для обеспечения уникальности объектов. Три конкретных класса Set - это HashSet, LinkedHashSet и TreeSet. - Карты:
Карта - это контейнер, в котором хранятся элементы вместе с ключами. Ключи похожи на указатели. В списке индексы являются целыми числами. В Map ключами могут быть любые объекты. Карта не может содержать дубликаты ключей. Каждый ключ соответствует одному значению. Ключ и соответствующее ему значение из записи, которая фактически хранится на карте. HashMap, HashTable, TreeMap и LinkedHashMap являются классами, реализующими интерфейс Map. - Очереди:
Очередь - это структура данных «первым пришел - первым вышел». Элементы добавляются в конец очереди и удаляются из начала очереди. В очереди приоритетов элементам назначаются приоритеты. При доступе к элементам элемент с наивысшим приоритетом удаляется первым.
У нас могут быть подклассы классов коллекции, такие как сортированные, несортированные, упорядоченные и неупорядоченные.
Упорядоченный: когда коллекция упорядочена, это означает, что вы можете перебирать коллекцию в определенном (не случайном) порядке
Сортировка. Сортированная коллекция означает, что порядок объектов в коллекции определяется в соответствии с некоторым правилом или правилами, известными как порядок сортировки. Порядок сортировки не имеет ничего общего с тем, когда объект был добавлен в коллекцию, или когда в последний раз к нему обращались, или в какой «позиции» он был добавлен.
Интерфейс Итератора
Итератор позволяет циклически проходить через коллекцию, получать или удалять элементы. ListIterator расширяет Iterator, чтобы разрешить двунаправленный обход списка и модификацию элементов.
Итератор - это объект, связанный с определенной коллекцией. Это позволит вам шаг за шагом пройтись по коллекции. Есть два важных метода итераторов.
- boolean hasNext (): Возвращает true, если в коллекции есть хотя бы еще один элемент. Вызов имеет Next () НЕ перемещает вас к следующему элементу коллекции.
- object next (): этот метод возвращает следующий объект в коллекции, И перемещает вас вперед к элементу после того, как элемент только что вернулся.
Мы увидим пример использования интерфейса итератора в LinkedHashSet и HashMap Tutorial.
Интерфейс компаратора
Интерфейс Comparator дает вам возможность сортировать данную коллекцию различными способами. Еще одна удобная вещь в интерфейсе Comparator состоит в том, что вы можете использовать его для сортировки экземпляров любого класса - даже классов, которые вы не можете изменить - в отличие от интерфейса Comparable, что заставляет вас менять класс, экземпляры которого вы хотите отсортировать.
Интерфейс Comparator также очень прост в реализации, он имеет только один метод compare (). Метод Comparator.compare () возвращает int.
Подпись метода
int сравнить (objOne, objTwo)
Метод Compare () возвращает
- отрицательно, если objOne <objTwo
- ноль, если objOne == objTwo
- положительный, если objOne> objTwo
Мы увидим Java-программу, использующую этот метод в TreeMap / TreeSet Tutorial.
Резюме:
Ниже в таблице приведены итоги обсуждения структуры сбора.
Коллекция Название класса | Приказал | отсортированный | |
карта | Хеш-таблица | нет | нет |
HashMap | нет | нет | |
TreeMap | отсортированный | По естественному заказу или под заказ | |
LinkedHashMap | По порядку ввода или последнему порядку доступа | нет | |
Задавать | HashSet | нет | нет |
TreeSet | отсортированный | По естественному заказу или под заказ | |
LinkedHashSet | По порядку ввода | нет | |
Список | ArrayList | индексированный | нет |
Вектор | индексированный | нет | |
LinkedList | индексированный | нет | |
Приоритетная очередь | отсортированный | По заказу |
Предыдущая: Сериализация Java
Далее: Java ArrayList и Vector
Новый контент: Composer: менеджер зависимостей для PHP , R программирования