Interseção de listas
Comparar listas para encontrar elementos em comum é uma operação frequente em sistemas reais: você pode estar cruzando permissões de usuários, interesses entre perfis ou identificando contatos mútuos. Dominar essa lógica com contains() é essencial para trabalhar com dados sem depender de estruturas mais avançadas.
O PROBLEMA
Dois ArrayLists. Crie terceiro com elementos comuns.
EXEMPLO
[3,4,5]
SOBRE O CONCEITO
Para encontrar a interseção entre duas listas, percorra uma delas com for-each e, para cada elemento, use contains() na outra lista para verificar se ele está presente. Se estiver, adicione-o ao terceiro ArrayList. O erro comum é incluir duplicatas — isso acontece quando a primeira lista tem repetições, e o mesmo valor é adicionado várias vezes. A solução é verificar se o elemento já foi inserido no resultado (usando contains() na própria lista de saída) antes de adicioná-lo. Lembre-se: você está limitado a ArrayList e contains(), sem usar Set ou retainAll.
RESOLUÇÃO