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

Dúvida - Qual diferença entre os códigos.

Qual a diferença entres os códigos do exemplo mostrado.

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> numerosPares = numeros.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toList());

System.out.println(numerosPares); // Output: [2, 4, 6, 8, 10]
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Set<Integer> numerosPares = numeros.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toSet());

System.out.println(numerosPares); // Output: [2, 4, 6, 8, 10]
2 respostas
solução!

Oi Judson! Tudo bem?

A diferença está nos tipos de dados. De uma forma prática, a lista aceita dados repetidos, e o Set não. Teste fazer por exemplo:

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 8, 5, 7, 8, 5);

Set<Integer> numerosPares = numeros.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toSet());

System.out.println(numerosPares); // Output: [2, 4, 6, 8, 10]

Você terá exatamente o mesmo resultado que estava tendo no código anterior. Já com a lista, você teria uma saída diferente. Caso você queira se aprofundar nas diferenças das estruturas de dados, recomendo o artigo: https://www.alura.com.br/artigos/estrutura-dados-computacao-na-pratica-com-java

Espero ter ajudado! Abraços e bons estudos!

Oi Iasmin, obrigado pelo retorno, com esse seu exemplo deu para entender a diferença. Obigado.