Todo mundo falando que o exemplo é ruim (de fato é). Vou dar um exemplo real.
Numa determinada rotina tinha algo assim (java):
if (!codigos.contains(codigo)) {
codigos.add(codigo);
rotina(codigo);
}
A questão é que códigos acima era um List. Trocamos por um HashSet e o codigo final ficou
if (codigos.add(codigo)) {
rotina(codigo);
}
Ou seja, se add retornar true é porque o elemento não existia no set e foi adicionado então podemos rodar a rotina. Como tinha bastante elementos a diferença foi muito perceptível.
Ótimo exemplo! Esse caso ilustra bem como a escolha correta da estrutura de dados pode impactar a performance. Usar um HashSet em vez de uma List para verificar e armazenar elementos reduz o tempo de busca de O(n) para O(1) na maioria dos casos, tornando o código mais eficiente, especialmente em conjuntos grandes.
A ideia do post era justamente reforçar a importância de entender essas diferenças, mas concordo que o exemplo escolhido não foi o melhor. Valeu por compartilhar um caso real que demonstra bem esse princípio!
Obrigado pelo comentario!