Junior
391
Koja je razlika između List i Set u Javi?
Одговор од АИ
sobes.tech АИ
Основне разлике:
- Редослед елемената:
Listодржава редослед у којем су елементи додавани.Setне гарантује редослед елемената (зависи од конкретне имплементације, на пример,LinkedHashSetодржава редослед додавања).
- Дупликати:
Listдозвољава чување дуплираних елемената.Setчува само јединствене елементе.
- Приступ елементима:
Listомогућава приступ елементима по индексу.Setне пружа директан приступ елементима по индексу, приступ се врши преко итератора или циклуса.
- Перформансе:
- Операције претраге и додавања у
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 |
| Типична употреба | Упоредне колекције, листе | Јединствене колекције, скупови |