Junior — Middle
Qual è la differenza tra l'implementazione della collezione Set e quella della collezione ArrayList in Java?
sobes.tech AI
Risposta dell'AI
La principale differenza tra le collezioni Set e ArrayList in Java risiede nel loro comportamento e implementazione:
- Set — è una collezione che non consente duplicati. L'ordine degli elementi non è garantito (ad esempio, in HashSet), anche se ci sono implementazioni con ordinamento (TreeSet, LinkedHashSet).
- ArrayList — è una lista ordinata che consente duplicati e mantiene l'ordine di inserimento.
Dal punto di vista dell'implementazione:
- ArrayList si basa su un array che si espande dinamicamente aggiungendo elementi. Accesso rapido tramite indice.
- HashSet è generalmente implementato su HashMap, dove gli elementi fungono da chiavi. Ciò garantisce una ricerca rapida e la verifica dell'unicità.
Esempio:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // non verrà aggiunto di nuovo
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // entrambi gli elementi vengono aggiunti