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

ArrayList x List

Olá,

No código da classe "FiltroDeLances" é declarada uma ArrayList, porém na "FiltroDeLancesTest" há um polimorfismo de List. Poderíamos apenas trabalhar com ArrayList? Por que neste código o List seria uma vantagem? Caso troquemos o List pelo ArrayList, como ficaria a linha " List resultado = filtro.filtra(Arrays.asList(.............") ?

FiltroDeLances filtro = new FiltroDeLances();
        List<Lance> resultado = filtro.filtra(Arrays.asList(
                new Lance(joao,2000), 
                new Lance(joao,1000), 
                new Lance(joao,3000), 
                new Lance(joao, 800)));
3 respostas

Fala aí Roger, a ideia de utilizar a interface List é trabalhar com o polimorfismo, dessa maneira, podemos tanto passar um ArrayList quanto um LinkedList, na teoria não deveríamos realizar tanta mudança no código.

Se você definir sua variável como ArrayList essa mudança para a LinkedList não seria possível de forma tão simples, precisaria mexer em mais códigos.

Espero ter ajudado.

Matheus, obrigado.

Então o "filtro.filtra(Arrays.asList.." seria um LinkedList?

Se sim, por que usá-lo neste caso?

Abs

solução!

O código filtro.filtra(Arrays.asList(, apenas está transformando todos os novos lances criados através do new Lance para um List de Lances.

Quando fazemos Arrays.asList, ele recebe um array comum e converte para um List.

Espero ter ajudado.