Sobes.tech
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