Junior — Middle
Qual é a diferença entre a implementação da coleção Set e a coleção ArrayList em Java?
sobes.tech IA
Resposta da IA
A principal diferença entre as coleções Set e ArrayList em Java reside no seu comportamento e implementação:
- Set — é uma coleção que não permite elementos duplicados. A ordem dos elementos não é garantida (por exemplo, em HashSet), embora existam implementações com ordenação (TreeSet, LinkedHashSet).
- ArrayList — é uma lista ordenada que permite duplicados e mantém a ordem de inserção dos elementos.
Do ponto de vista da implementação:
- ArrayList é baseado numa matriz que se expande dinamicamente ao adicionar elementos. Acesso rápido por índice.
- HashSet é geralmente implementado com base no HashMap, onde os elementos atuam como chaves. Isto garante uma busca rápida e verificação de unicidade.
Exemplo:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // não será adicionado novamente
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // ambos os elementos serão adicionados