Latest web development tutorials

Java Collections Framework

Еще задолго до в Java 2, Java предоставляет специальную категорию. Например: классы Словарь, Vector, Stack, и свойства, используемые для хранения и манипулирования группами объектов.

Хотя эти классы очень полезны, но они испытывают недостаток в центральной, объединяющей темы. По этой причине использовать класс способ Вектор и использовать класс Properties имеет совершенно другой путь.

Коллекции Framework предназначена для решения следующих задач.

  • Основа должна быть высокой производительности. Базовый набор (динамические массивы, связанные списки, деревья, хеш-таблицы) реализация также должна быть эффективной.
  • Структура позволяет использовать различные типы коллекций, таким же образом, с высокой степенью совместимости.
  • Расширение и адаптация коллекции должны быть простыми.

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

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

  • Интерфейс: Это абстрактный тип данных представляет коллекцию. Интерфейс позволяет независимое манипулирование деталями сбора ее представителей. В объектно-ориентированных языков программирования, интерфейсы обычно образуют иерархию.
  • Реализация (класс): является реализация коллекции интерфейсов. По существу, они являются повторно используемые структуры данных.
  • Алгоритм: некоторые полезные вычислительный объект , который реализует интерфейс в методе сбора выполнения, например: поиск и сортировка. Эти алгоритмы называются несколькими состояниями, это происходит потому, что тот же самый метод может иметь различные варианты реализации на аналогичном интерфейсе.

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


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

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

Нет. Описание интерфейса
1 Интерфейс Collection позволяет использовать группу объектов, иерархия корневой интерфейс Collection.
2 Список элементов интерфейса , унаследованные от Collection и экземпляр списка хранить упорядоченную коллекцию.
3 Установить
Унаследованные от Collection, это коллекция , которая не содержит повторяющихся элементов.
4 SortedSet
Установить в упорядоченной последовательности, чтобы сохранить набор.
5 карта
Только карты ключи к значениям.
6 Map.Entry
Описание элемента (пар ключ / значение) в карте. Карта представляет собой внутренний класс.
7 SortedMap
Унаследованные от карты, поэтому ключа, хранящегося в порядке возрастания.
8 перечисление
Это традиционное определение интерфейсов и методов, с помощью которых можно перечислить (после получения) объектов в элементах коллекции. Эта традиция была заменена интерфейса итератора.

Коллекции

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

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

Нет. Класс Описание
1 AbstractCollection
Для достижения большей части интерфейсов сбора.
2 AbstractList
Наследование в AbstractCollection и достигается большая часть интерфейса List.
3 AbstractSequentialList
Унаследованные от AbstractList, он обеспечивает доступ к элементам данных в цепочке, а не случайного доступа.
4 LinkedList
Унаследованные от AbstractSequentialList, он реализует связанный список.
5 ArrayList
Через наследование AbstractList, динамические массивы.
6 AbstractSet
Наследование в AbstractCollection и достигается большая часть интерфейса Set.
7 HashSet
Он унаследовал AbstractSet, и использовать хэш-таблицу.
8 LinkedHashSet
С предсказуемом порядке итерации и связанный список хеш - таблица интерфейс набора.
9 TreeSet
Унаследованные от AbstractSet, используя элементы естественного порядка элементов в порядке.
10 AbstractMap
Для достижения большей части интерфейса карты.
11 HashMap
HashMap является хэш-таблица, в которой хранится содержимое пар ключ-значение (ключ-значение) отображения.
HashMap унаследовал AbstractMap, реализованный интерфейс Map, Cloneable, java.io.Serializable.
12 TreeMap
Он унаследовал AbstractMap, и использование дерева.
13 WeakHashMap
Наследуется AbstractMap класс, использовать хэш-таблицу слабых ключей.
14 LinkedHashMap
Унаследованные от HashMap, используя элементы естественного порядка элементов, подлежащих сортировке.
15 IdentityHashMap
наследование классов AbstractMap, используя референс-равенство при сравнении документов.

В предыдущем уроке мы были обсуждены java.util классов, определенных в пакете, следующим образом:

Нет. Класс Описание
1 вектор
Vector класс реализует динамический массив. И ArrayList и подобное, но две разные.
2 стек
Стек представляет собой подкласс Vector, который реализует стандартный стек LIFO.
3 словарь
Словарь класс является абстрактным классом, который используется для хранения пар ключ / значение, подобно классу действий и Map.
4 Hashtable
Hashtable является частью оригинального java.util является словарь конкретной реализацией.
5 свойства
Свойства наследует от Hashtable. Представляет собой постоянный набор свойств. Каждый ключ и его соответствующее значение в списке свойств является строкой.
6 BitSet
Класс BitSet создает особый тип массива для хранения битового значения. BITSET с размером массива необходимо будет увеличить.

Класс BitSet создает особый тип массива для хранения битового значения. BITSET с размером массива необходимо будет увеличить.


алгоритм Коллекция

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

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

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

Нет. Алгоритм Описание
1 Коллекция Алгоритмы
Ниже приведен список всех алгоритмов.

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

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

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

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

Все методы и интерфейс ListIterator Итератор при условии , перечисленные здесь в качестве примера.

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

TreeSet и TreeMap порядок сортировки в соответствии с элементом хранения. Тем не менее, это сравнивая устройство точно определенного в терминах того, что порядок сортировки.

Этот интерфейс позволяет нам по-разному для сортировки набора.

Нет. Сравнение методов описано
1 Использование Java компаратор
Интерфейс компаратор обеспечивает все методы, перечисленные здесь в качестве примера,

резюме

Java Collections Framework предоставляет программисту расфасованных структуры данных и алгоритмы, чтобы манипулировать ими.

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

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