Escreva uma programa que dado um conjunto de números inteiros, retorne os números que se repetem. Exiba 0 se nenhum se repete. Entrada: 1 2 3 4 5 6 7 8. Saída: 0 Entrada: 1 5 4 4 2 8 6 7. Saída: 4 Entrada: 1 2 3 4 2 1 5 7. Saída: 1 2
Escreva uma programa que dado um conjunto de números inteiros, retorne os números que se repetem. Exiba 0 se nenhum se repete. Entrada: 1 2 3 4 5 6 7 8. Saída: 0 Entrada: 1 5 4 4 2 8 6 7. Saída: 4 Entrada: 1 2 3 4 2 1 5 7. Saída: 1 2
Olá, implementei uma solução usando a interface List e classe ArrayList para representar a lista de numeros a ser verificada. Além disso usei streams para verificar o número de ocorrencias do elemento e retornar os repetidos.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class NumerosRepetidos {
public static void main(String[] args) {
List<Integer> lista = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 4, 5));
System.out.println("Lista" + lista);
System.out.println();
System.out.println("Repetidos: " + verificaRepeticao(lista));
}
private static String verificaRepeticao(List<Integer> lista) {
List<Integer> listaDeNumerosRepetidos = new ArrayList<>();
for (Integer elemento : lista) {
Long aparicoes = lista.stream().filter(numero -> numero == elemento).count();
if (aparicoes > 1) {
listaDeNumerosRepetidos.add(elemento);
}
}
return listaDeNumerosRepetidos.toString();
}
}
Resposta no prompt:
Lista[1, 1, 2, 3, 4, 5]
Repetidos: [1, 1]
Process finished with exit code 0