1
resposta

java

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

1 resposta

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