Java LinkedHashSet
Java LinkedHashSet
В этом руководстве мы узнаем о классе Java LinkedHashSet и его методах с помощью примеров.
07
класс платформы коллекций Java предоставляет функциональные возможности как хеш-таблицы, так и структуры данных связанного списка.
Он реализует интерфейс Set.
Элементы 12
хранятся в хеш-таблицах, подобных HashSet.
Однако связанные хеш-наборы поддерживают внутри себя двусвязный список для всех своих элементов. Связанный список определяет порядок, в котором элементы вставляются в хеш-таблицы.
<час>Создать LinkedHashSet
Чтобы создать связанный набор хэшей, мы должны импортировать 20
сначала пакет.
Как только мы импортируем пакет, вот как мы можем создать связанные наборы хэшей в Java.
01
Здесь мы создали связанный набор хэшей с именем numbers. .
Обратите внимание, часть 39
. Здесь первым параметром является вместимость. а второй параметр — коэффициент нагрузки. .
- вместимость – Емкость этого хеш-набора равна 8. Это означает, что он может хранить 8 элементов.
- коэффициент нагрузки - Коэффициент загрузки этого хеш-набора равен 0,6. Это означает, что всякий раз, когда наша хеш-таблица заполняется на 60 %, элементы перемещаются в новую хэш-таблицу, размер которой вдвое превышает размер исходной хеш-таблицы.
Емкость и коэффициент загрузки по умолчанию
Можно создать связанный набор хэшей, не определяя его емкость и коэффициент загрузки. Например,
10пре>По умолчанию
- емкость связанного набора хэшей будет 16
- коэффициент загрузки будет 0,75
Создание LinkedHashSet из других коллекций
Вот как мы можем создать связанный набор хэшей, содержащий все элементы других коллекций.
28
Вывод
32<час>
Методы LinkedHashSet
48
класс предоставляет методы, которые позволяют нам выполнять различные операции со связанным набором хэшей.
Вставить элементы в LinkedHashSet
52
- вставляет указанный элемент в связанный набор хэшей61
- вставляет все элементы указанной коллекции в связанный набор хэшей
Например,
40
Вывод
58<час>
Доступ к элементам LinkedHashSet
Чтобы получить доступ к элементам связанного набора хэшей, мы можем использовать 75
метод. Чтобы использовать этот метод, мы должны импортировать 80
упаковка. Например,
61
Вывод
73
Примечание :
94
возвращает106
если в связанном наборе хэшей есть следующий элемент115
возвращает следующий элемент в связанном наборе хэшей
Удалить элементы из HashSet
127
- удаляет указанный элемент из связанного набора хэшей138
- удаляет все элементы из связанного набора хэшей
Например,
80
Вывод
90<час>
Операции с наборами
Различные методы 140
class также можно использовать для выполнения различных операций над множествами.
Союз наборов
Два выполняют объединение двух наборов, мы можем использовать 155
метод. Например,
107
Вывод
115<час>
Пересечение наборов
Чтобы выполнить пересечение между двумя наборами, мы можем использовать 165
метод. Например
120
Вывод
134<час>
Разница наборов
Чтобы вычислить разницу между двумя наборами, мы можем использовать 177
метод. Например,
146
Вывод
159<час>
Подмножество
Чтобы проверить, является ли набор подмножеством другого набора или нет, мы можем использовать 189
метод. Например,
166
Вывод
179<час>
Другие методы LinkedHashSet
Метод | Описание |
---|---|
198 | Создает копию 203 |
216 | Ищет 220 для указанного элемента и возвращает логический результат |
234 | Проверяет, соответствует ли 247 пусто |
256 | Возвращает размер 264 |
270 | Удаляет все элементы из 282 |
Чтобы узнать больше о 292
методы, посетите Java LinkedHashSet (официальная документация по Java).
LinkedHashSet vs. Набор хешей
Оба 302
и 313
реализует 320
интерфейс. Однако между ними существуют некоторые различия.
339
поддерживает связанный список внутри. Благодаря этому он сохраняет порядок вставки своих элементов.340
class требует больше памяти, чем356
. Это потому, что368
поддерживает внутренние связанные списки.- Производительность
378
медленнее, чем381
. Это из-за связанных списков, присутствующих в392
. .
LinkedHashSet Vs. набор деревьев
Вот основные различия между 403
и 411
:
426
класс реализует439
интерфейс. Вот почему элементы в древовидном наборе сортируются. Однако447
класс поддерживает только порядок вставки своих элементов.- А
454
обычно медленнее, чем461
. Это потому, что всякий раз, когда элемент добавляется в471
, он должен выполнить операцию сортировки. 485
позволяет вставлять нулевые значения. Однако мы не можем вставить нулевое значение в491
. .
java