Da trilha de Java Este conceito ainda não saiu como card do dia. ir para o card de hoje

Java Coleções Intermediário

List, Set e Map

As coleções em Java são estruturas que armazenam e organizam grupos de objetos. As três interfaces principais são List, Set e Map, cada uma com características e implementações específicas. List mantém a ordem de inserção e permite elementos duplicados; Set não permite duplicatas e não garante ordem (a menos que se use LinkedHashSet ou TreeSet); Map associa chaves a valores, sem chaves duplicadas.

ArrayList é a implementação mais usada de List, baseada em array redimensionável, com acesso rápido por índice. HashSet é a implementação mais comum de Set, usando tabela hash para garantir unicidade com bom desempenho. HashMap é a implementação padrão de Map, também baseada em hash, ideal para buscas rápidas por chave.

A escolha da implementação depende do que você precisa: ordem, unicidade, desempenho de busca ou associação chave-valor. Por exemplo, se precisa de acesso posicional, use ArrayList; se precisa evitar duplicatas, use HashSet; se precisa mapear chaves a valores, use HashMap.

Pontos-chave

  • List mantém ordem de inserção e permite duplicatas; ArrayList é a implementação mais usada.
  • Set não permite elementos duplicados; HashSet é a implementação mais comum.
  • Map associa chaves únicas a valores; HashMap é a implementação padrão.
  • Escolha a implementação conforme a necessidade: ordem, unicidade, busca rápida ou associação chave-valor.
  • Use ArrayList para listas ordenadas, HashSet para conjuntos sem duplicatas e HashMap para dicionários.
ColecoesExemplo.java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;

public class ColecoesExemplo {
    public static void main(String[] args) {
        // List: mantém ordem e permite duplicatas
        List<String> nomes = new ArrayList<>();
        nomes.add("Ana");
        nomes.add("Bruno");
        nomes.add("Ana"); // duplicata permitida
        System.out.println("List: " + nomes);

        // Set: não permite duplicatas
        Set<String> nomesUnicos = new HashSet<>();
        nomesUnicos.add("Ana");
        nomesUnicos.add("Bruno");
        nomesUnicos.add("Ana"); // duplicata ignorada
        System.out.println("Set: " + nomesUnicos);

        // Map: associa chave a valor
        Map<String, Integer> idades = new HashMap<>();
        idades.put("Ana", 25);
        idades.put("Bruno", 30);
        idades.put("Ana", 26); // sobrescreve valor anterior
        System.out.println("Map: " + idades);
        System.out.println("Idade da Ana: " + idades.get("Ana"));
    }
}

Exercícios

  1. 1
    Fácil

    Lista de compras com ArrayList

    Crie um programa que use ArrayList para armazenar uma lista de compras. Adicione os itens "Arroz", "Feijão", "Macarrão" e "Arroz" novamente. Imprima a lista completa e o tamanho dela.

    Resolver
  2. 2
    Médio

    Conjunto de números únicos com HashSet

    Crie um programa que use HashSet para armazenar números inteiros. Adicione os valores 10, 20, 10, 30 e 20. Imprima o conjunto resultante e a quantidade de elementos. Em seguida, verifique se o número 20 está presente e imprima uma mensagem.

    Resolver
  3. 3
    Desafio

    Contagem de palavras com HashMap

    Crie um programa que leia uma frase (pode ser fixa no código) e use HashMap para contar quantas vezes cada palavra aparece. Considere que as palavras são separadas por espaços e ignore maiúsculas/minúsculas. Imprima o mapa resultante e a palavra que mais aparece.

    Resolver

Continue estudando