Різниця між списком та набором у Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 15 Травень 2024
Anonim
Урок по Java 51: Сортировка коллекций и интерфейсы - Comparable и Comparator
Відеоролик: Урок по Java 51: Сортировка коллекций и интерфейсы - Comparable и Comparator

Зміст


Інтерфейс списку та встановлення розширює колекцію. Вони обидва підтримують колекцію елементів або предметів. Але, головна відмінність, яка їх відрізняє один від одного, - це Список - це набір упорядкованих елементів, елементи додаються або видаляються або отримують доступ до них за допомогою змінної індексу. З іншого боку, Set - це сукупність об'єктів, де колекція не допускає в ній повторюваних елементів. Давайте вивчимо ще кілька відмінностей між інтерфейсами List та Set за допомогою таблиці порівняння, показаної нижче.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняСписок Встановити
ОсновніСписок підтримує послідовність елементів, що зберігаються в списку.Набір не особливо підтримує порядок вставки, але, Linked HashSet підтримує порядок вставки.
ДублюванняСписок може містити в ньому повторювані елементи.Метод add () повертає значення false, якщо ви намагаєтеся вставити повторювані елементи.
МетодиКрім методів, визначених у колекції, Список визначає деякі власні методи.Набір не визначає жодного додаткового методу.
Впровадження Список реалізований ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Набір реалізований HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Визначення списку

Інтерфейс списку розширює інтерфейс колекції. Список - це упорядкована колекція елементів або об’єктів. На відміну від Set, List може містити повторювані елементи. На додаток до методів, визначених у Переліку колекцій, визначено деякі власні методи, такі як метод get () та set () на основі індексу. Методи add () та delete (), успадковані від Collection, який додає або видаляє вказаний елемент з індексу, визначеного в аргументі методу. Список - це різновид масиву, розмір якого збільшується, коли ми додаємо елементи до списку.

Список не визначає жодного способу роботи з діапазоном індексів у списку. Він визначає метод sublist (), який повертає підпис із вихідного списку заданого діапазону. Зміни, що вносяться до підпису, також відображаються у вихідному списку. Інтерфейс списку реалізований ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.

Визначення набору

Набір інтерфейсів розширює інтерфейс колекції. Інтерфейс набору - це колекція або група об'єктів, яка не містить у ній жодного дублюючого об'єкта. Це означає, що дві посилання не можуть посилатися на один об'єкт, або одна посилання не може посилатися на два об'єкти, або не може бути дві посилання, що посилаються на Null. Порядок або послідовність елемента не є важливим Набір, але це не те, що він забороняє впорядкований набір.


Набір інтерфейсу не визначає жодного методу на додаток до методу, визначеного у Collection. Натомість він обмежує способи колекції add () та addall () додавати будь-який дублікат об'єкта в колекцію. Якщо ви спробуєте додати будь-який дублікат об’єкта до колекції за допомогою методу add () колекції, він поверне помилковий. В іншому випадку воно повертає істину. Інтерфейс набору реалізований HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

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

Висновок:

Використання інтерфейсу List і Set залежить від вимоги. Якщо порядок об'єктів / елементів є важливим, тоді ви повинні використовувати інтерфейс List. Якщо у вашій колекції не потрібні повторювані елементи, вам потрібно використовувати інтерфейс Set