Como saber si un numero esta repetido en un array en Java

Hola a todos, hoy os voy a explicar como podemos saber si un número repetido en un array en Java.

Cuando queremos que un array no tenga valores duplicados, debemos comprobar valor a valor si existe el nuevo valor.

Empecemos pidiendo un número que será el que comprobemos en el array.

import java.util.Scanner;

public class ComprobarNumerosRepetir {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        
        System.out.println("Escribe un número");
        int num = sn.nextInt();
        
    }
    
}

Ahora crearemos el array que comprobaremos si existe el número.

import java.util.Scanner;

public class ComprobarNumerosRepetir {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        
        System.out.println("Escribe un número");
        int num = sn.nextInt();
        
        int[] array = {20, 30, 10, 60, 40, 50};
        
    }
    
}

Te dejo un manual sobre los arrays en Java:

Arrays en Java

Ahora, debemos recorrer el array y comprobar valor a valor si el número existe. Una vez que lo hayamos encontrado, no tiene sentido que sigamos recorriendo el array, por lo que con un simple booleano podemos terminar el bucle.

import java.util.Scanner;

public class ComprobarNumerosRepetir {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        
        System.out.println("Escribe un número");
        int num = sn.nextInt();
        
        int[] array = {20, 30, 10, 60, 40, 50};
        
        boolean existe = false;
        for (int i = 0; i < array.length && !existe; i++) {
            if(array[i] == num){
               existe = true; 
            }
        }
        
    }
    
}


Al final, solo tenemos que indicar si existe o no.

import java.util.Scanner;

public class ComprobarNumerosRepetir {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        
        System.out.println("Escribe un número");
        int num = sn.nextInt();
        
        int[] array = {20, 30, 10, 60, 40, 50};
        
        boolean existe = false;
        for (int i = 0; i < array.length && !existe; i++) {
            if(array[i] == num){
               existe = true; 
            }
        }
        
        if(existe){
            System.out.println("El número " + num + " existe en el array");
        }else{
            System.out.println("El número " + num + " no existe en el array");
        }
        
    }
    
}

También te lo dejo en función:


/**
 * Indica si un elemento dentro de un array esta repetido
 *
 * @param array array a comprobar
 * @param num numero a comprobar
 * @return si hay o no algun elemento repetido
 */
public static boolean elementoRepetido(int[] array, int num) {

    // Recorremos el mismo array
    for (int i = 0; i < array.length; i++) {
        // Si coincide significa que hay un elemento repetido
        if (array[i] == num) {
            return true;
        }
    }

    // No hay un elemento repetido
    return false;

}

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *