Sobes.tech
Junior
391

Koja je razlika između List i Set u Javi?

Одговор од АИ

sobes.tech АИ

Основне разлике:

  1. Редослед елемената:
    • List одржава редослед у којем су елементи додавани.
    • Set не гарантује редослед елемената (зависи од конкретне имплементације, на пример, LinkedHashSet одржава редослед додавања).
  2. Дупликати:
    • List дозвољава чување дуплираних елемената.
    • Set чува само јединствене елементе.
  3. Приступ елементима:
    • List омогућава приступ елементима по индексу.
    • Set не пружа директан приступ елементима по индексу, приступ се врши преко итератора или циклуса.
  4. Перформансе:
    • Операције претраге и додавања у List са великим бројем елемената могу бити спорије него у Set (на пример, у HashSet).
    • Операције додавања и брисања у Set (на пример, HashSet) обично имају просечну константну временску сложеност.

Пример:

// Листа која дозвољава дупликате и одржава редослед
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Излаз: [Apple, Banana, Apple]

// Множина која чува само јединствене елементе
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Излаз: [Apple, Banana] (редослед може варирати)

Упоредна табела:

Аспект List Set
Редослед Одржава се Не гарантује се (зависи од имплементације)
Дупликати Допуштени Не допуштени
Приступ по индексу Да Не
Интерфејс java.util.List java.util.Set
Типична употреба Упоредне колекције, листе Јединствене колекције, скупови