Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 3 da Aula 9 - Qual Collection usar

Na resposta é mostrado o texto:

"Caso sinta necessidade de fazer uma requisição a um elemento específico através da sua posição, trocará de Collection para List. Caso perceba que ordem não importa, porém é necessária uma busca bem rápida (e sem repetições), um Set é mais apropriado."

É realmente necessário mudar o tipo de declaração para set caso que queira uma busca mais rápida? A interface Set possui os mesmos métodos da interface Collection, portanto não vejo porque mudar o tipo de declaração para Collection

Qual o sentido de usar Set como tipo do objeto se eu posso usar Collection e não mudar o comportamento desejado, por exemplo, não permitir adição de elementos repetidos? A única vantagem que eu consigo pensar é deixar o código mais legível.

3 respostas

Oi Alexandre!

A diferença entre Set e Collection não é apenas os métodos que vão estar disponíveis. Collection é apenas um "contrato" que suas implementações seguem.

O jeito que as diferentes implementações cumprem esse contrato depende muito delas, cada collection possui uma vantagem diferente para aplicações diferentes.

Eu recomendo pra você dar uma olhada em nosso curso que explica o conceito de herança

https://www.alura.com.br/curso-online-java-e-orientacao-a-objetos

desse modo vai ficar mais claro pra você o que está acontecendo!

Abraços!

Oi Phillipe,

Eu já fiz esse curso. Set é uma interface, certo? Eu entendo que uma HashSet ou outra implementação de Set vai implementar de modo que atenda suas especificidades, mas o que muda se eu usar a interface Set como tipo?

solução!

Isso! A principal diferença é que o programador sabe logo de cara que aquela Collection não vai ter elementos repetidos