Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java — структура коллекций

До Java 2 в Java были специальные классы, такие как Dictionary, Vector, Stack. и Свойства для хранения и управления группами объектов. Хотя эти занятия были весьма полезны, им не хватало центральной объединяющей темы. Таким образом, способ, которым вы использовали Вектор, отличался от способа, которым вы использовали Свойства.

Структура коллекций была разработана для достижения нескольких целей, таких как -

С этой целью вся структура коллекций разработана вокруг набора стандартных интерфейсов. Несколько стандартных реализаций, таких как LinkedList, HashSet. и Набор деревьев , из этих интерфейсов вы можете использовать как есть, а также можете реализовать свою собственную коллекцию, если захотите.

Каркас коллекций — это унифицированная архитектура для представления коллекций и управления ими. Все структуры коллекций содержат следующее —

Помимо коллекций, фреймворк определяет несколько интерфейсов карт и классов. Карты хранят пары ключ/значение. Хотя карты не являются коллекциями в правильном использовании этого термина, но они полностью интегрированы с коллекциями.

Интерфейсы коллекции

Каркас коллекций определяет несколько интерфейсов. В этом разделе представлен обзор каждого интерфейса —

Сер.№ Интерфейс и описание
1 Интерфейс коллекции

Это позволяет вам работать с группами объектов; он находится на вершине иерархии коллекций.

2 Интерфейс списка

Это расширяет коллекцию а экземпляр List хранит упорядоченную коллекцию элементов.

3 Набор

Это расширяет коллекцию для обработки наборов, которые должны содержать уникальные элементы.

4 Сортированный набор

Это расширяет Set для обработки отсортированных наборов.

5 Карта

Это сопоставляет уникальные ключи со значениями.

6 Карта.Запись

Это описывает элемент (пару ключ/значение) на карте. Это внутренний класс Map.

7 Сортированная карта

Это расширяет Map, чтобы ключи сохранялись в возрастающем порядке.

8 Перечисление

Этот устаревший интерфейс определяет методы, с помощью которых вы можете перечислять (получать по одному) элементы в коллекции объектов. Этот устаревший интерфейс был заменен Iterator.

Классы коллекций

Java предоставляет набор стандартных классов коллекций, реализующих интерфейсы коллекций. Некоторые из классов предоставляют полные реализации, которые можно использовать как есть, а другие представляют собой абстрактные классы, предоставляющие скелетные реализации, которые используются в качестве отправных точек для создания конкретных коллекций.

Стандартные классы коллекций приведены в следующей таблице —

<тд>

Абстрактная коллекция

Реализует большую часть интерфейса коллекции.

<тд>

Абстрактный список

Расширяет AbstractCollection и реализует большую часть интерфейса List.

<тд>

АбстрактныйПоследовательныйСписок

Расширяет AbstractList для использования коллекцией, которая использует последовательный, а не произвольный доступ к своим элементам.

<тд>

Абстрактный набор

Расширяет AbstractCollection и реализует большую часть интерфейса Set.

<тд>

Абстрактная карта

Реализует большую часть интерфейса карты.

Сер.№ Класс и описание
1
2
3
4 Связанный список

Реализует связанный список, расширяя AbstractSequentialList.

5 Список массивов

Реализует динамический массив, расширяя AbstractList.

6
7 HashSet

Расширяет AbstractSet для использования с хеш-таблицей.

8 LinkedHashSet

Расширяет HashSet, чтобы разрешить итерации порядка вставки.

9 Набор деревьев

Реализует набор, хранящийся в дереве. Расширяет абстрактный набор.

10
11 HashMap

Расширяет возможности AbstractMap для использования хэш-таблицы.

12 Карта дерева

Расширяет возможности AbstractMap для использования дерева.

13 WeakHashMap

Расширяет возможности AbstractMap для использования хеш-таблицы со слабыми ключами.

14 LinkedHashMap

Расширяет HashMap, позволяя выполнять итерации порядка вставки.

15 IdentityHashMap

Расширяет возможности AbstractMap и использует равенство ссылок при сравнении документов.

AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList и Абстрактная карта классы предоставляют скелетные реализации основных интерфейсов коллекций, чтобы свести к минимуму усилия, необходимые для их реализации.

Следующие унаследованные классы, определенные java.util, обсуждались в предыдущей главе —

Сер.№ Класс и описание
1 Вектор

Это реализует динамический массив. Он похож на ArrayList, но с некоторыми отличиями.

2 Стек

Stack – это подкласс класса Vector, который реализует стандартный стек по принципу "последний пришел - первый ушел".

3 Словарь

Dictionary – это абстрактный класс, представляющий хранилище ключей и значений и работающий так же, как Map.

4 Хэш-таблица

Hashtable был частью оригинального java.util и конкретной реализацией словаря.

5 Свойства

Properties является подклассом Hashtable. Он используется для поддержки списков значений, в которых ключ является строкой, а значение также является строкой.

6 Битсет

Класс BitSet создает специальный тип массива, который содержит битовые значения. Этот массив может увеличиваться в размере по мере необходимости.

Алгоритмы сбора

Платформа коллекций определяет несколько алгоритмов, которые можно применять к коллекциям и картам. Эти алгоритмы определены как статические методы в классе Collections.

Некоторые из методов могут вызывать исключение ClassCastException. , что происходит при попытке сравнения несовместимых типов или UnsupportedOperationException , что происходит при попытке изменить неизменяемую коллекцию.

Коллекции определяют три статические переменные:EMPTY_SET, EMPTY_LIST и EMPTY_MAP. Все они неизменны.

Сер.№ Алгоритм и описание
1 Алгоритмы сбора

Вот список всех реализаций алгоритма.

Как использовать итератор?

Часто вам потребуется перебирать элементы в коллекции. Например, вы можете захотеть отобразить каждый элемент.

Самый простой способ сделать это — использовать итератор, который представляет собой объект, реализующий либо интерфейс Iterator, либо интерфейс ListIterator.

Итератор позволяет циклически перемещаться по коллекции, получая или удаляя элементы. ListIterator расширяет возможности Iterator, обеспечивая двунаправленный обход списка и изменение элементов.

Сер.№ Метод и описание итератора
1 Использование итератора Java

Вот список всех методов с примерами, предоставляемыми интерфейсами Iterator и ListIterator.

Как использовать компаратор?

И TreeSet, и TreeMap хранят элементы в отсортированном порядке. Однако именно компаратор точно определяет порядок сортировки означает.

Этот интерфейс позволяет нам сортировать данную коллекцию любым количеством различных способов. Также этот интерфейс можно использовать для сортировки любых экземпляров любого класса (даже классов, которые мы не можем модифицировать).

Сер.№ Метод и описание итератора
1 Использование компаратора Java

Вот список всех методов с примерами, предоставленными Comparator Interface.

Обзор

Платформа коллекций Java предоставляет программисту доступ к предварительно упакованным структурам данных, а также к алгоритмам для управления ими.

Коллекция — это объект, который может содержать ссылки на другие объекты. Интерфейсы коллекций объявляют операции, которые можно выполнять с коллекциями каждого типа.

Классы и интерфейсы каркаса коллекций находятся в пакете java.util.


java

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Java-интерфейс
  6. Анонимный класс Java
  7. Java-проба с ресурсами
  8. Java-аннотации
  9. Утверждения Java
  10. Учебное пособие по коллекциям C# с примерами