Разница между списком и множеством в Java

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 14 Май 2024
Anonim
Java и структуры данных - Использование списка ArrayList: методы add, get, addAll
Видео: Java и структуры данных - Использование списка ArrayList: методы add, get, addAll

Содержание


Интерфейс List and Set расширяет коллекцию. Оба они поддерживают коллекцию элементов или объектов. Но главное отличие, которое отличает их друг от друга, состоит в том, что List - это набор упорядоченных элементов, элементы добавляются, удаляются или доступны с помощью индексной переменной. С другой стороны, Set - это коллекция объектов, в которой коллекция не допускает дублирования элементов. Давайте рассмотрим некоторые различия между интерфейсами List и Set с помощью сравнительной таблицы, показанной ниже.

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравненияСписок Установлен
основнойСписок поддерживает последовательность элементов, хранящихся в списке.Set не поддерживает порядок вставки, но Linked HashSet поддерживает порядок вставки.
дупликацияСписок может содержать повторяющиеся элементы.Метод add () возвращает false, если вы пытаетесь вставить дубликаты элементов.
методыВ дополнение к методам, определенным в Collection, List определяет несколько своих собственных методов.Набор не определяет никакого дополнительного метода.
Реализация Список реализован с помощью ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Набор реализован с помощью HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Определение списка

Список интерфейс расширяет интерфейс коллекции. Список - это упорядоченная коллекция элементов или объектов. В отличие от Set, List может содержать повторяющиеся элементы. В дополнение к методам, определенным в Collection List, определены некоторые собственные методы, такие как методы get () и set (), основанные на индексах. Методы add () и remove (), унаследованные от Collection, которые добавляют или удаляют указанный элемент из индекса, указанного в аргументе метода. Список - это разновидность массива, размер которого увеличивается по мере добавления элементов в список.

Список не определяет какой-либо метод для работы с диапазоном индексов в списке. Он определяет метод sublist (), который возвращает подсписок из исходного списка указанного диапазона. Изменения, которые вы делаете в подсписке, также появляются в исходном списке. Интерфейс списка реализован с помощью ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Определение множества

Заданный интерфейс расширяет интерфейс Коллекции. Заданный интерфейс - это коллекция или группа объектов, в которых нет дублирующихся объектов. Это означает, что две ссылки не могут ссылаться на один объект, или одна ссылка не может ссылаться на два объекта, или не может быть двух ссылок, ссылающихся на Null. Порядок или последовательность элементов не имеет значения Set, но это не значит, что он запрещает упорядоченный набор.

Интерфейс Set не определяет какой-либо метод в дополнение к методу, определенному в Collection. Вместо этого он ограничивает методы коллекции add () и addall () для добавления любого дублированного объекта в коллекцию. Если вы попытаетесь добавить какой-либо дублирующийся объект в коллекцию, используя метод Collection () метода add (), он вернет false. В противном случае он возвращает истину. Интерфейс набора реализован с помощью HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Последовательность элементов / объектов в коллекции поддерживается в List, тогда как Set не поддерживает порядок элементов, но есть исключение. LinkedHashSet поддерживает порядок вставки.
  2. Список может иметь дубликаты элементов, поскольку он идентифицирует любой элемент с его индексом, но Set не допускает дублирования элементов, так как у него нет элемента индекса любого типа для идентификации какого-либо объекта в коллекции.
  3. Список определяет некоторые методы самостоятельно, в дополнение к методам, определенным в Collection. С другой стороны, Set не определяет собственный метод, но ограничивает методы Collection для добавления любых дублирующих элементов.
  4. Список реализован с помощью интерфейсов ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. С другой стороны, Set реализуется интерфейсами HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

Заключение:

Использование интерфейса List и Set зависит от требования. Если порядок объектов / элементов важен, то вы должны использовать интерфейс List. Если вам не нужны дубликаты элементов в вашей коллекции, вы должны использовать интерфейс Set