-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Desafio 18 #9
Comments
Olá, tudo certinho, e por aí? (: Então, temos algumas formas de fazer isso, segue um exemplo: List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 4, 3);
// Agrupa os números com base no próprio número.
Map<Integer, List<Integer>> grupos = numeros.stream()
.collect(Collectors.groupingBy(num -> num));
// Você pode ver que temos a indicação quais são os números que se repetem observando chave - valor.
System.out.println(grupos);
// Filtra os grupos com tamanho do valor maior que 1, logo, os números repetidos.
List<Integer> numerosRepetidos = grupos.entrySet().stream()
.filter(entry -> entry.getValue().size() > 1) // Filtamos as chaves pelos valores contendo acima de 1 repetição
.map(entry -> entry.getKey()) // Pegamos apenas as chaves
.collect(Collectors.toList()); // Coletamos para uma nova lista
// Imprime os números repetidos.
System.out.println(numerosRepetidos); |
Tudo bem! Não tinha visto por esse ponto de vista. Muito obrigado, novamente! |
Esse é um pouquinho mais complicado porque utiliza o |
Tem uma possibilidade que pesquisei, achei interessante. Segue abaixo:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Oi, Cami, tudo bem?
No desafio 18 - "Verifique se todos os números da lista são iguais"
Eu gostaria de resolver esse desafio retornando uma lista apenas com os números que se repetem, porém, estou com dificuldades de chegar a essa resolução.
Poderia me ajudar?
The text was updated successfully, but these errors were encountered: