Cómo encontrar un número duplicado en una matriz en Java

Escrito por sue smith Google | Traducido por pilar celano
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cómo encontrar un número duplicado en una matriz en Java
Java utiliza matrices para almacenar secuencias de valores numéricos y otros tipos de información. (Jupiterimages/Photos.com/Getty Images)

Si tienes una matriz numérica en un programa Java y contiene un valor duplicado indeseado, es posible que quieras encontrarlo. Con estructuras de bucle, el código puede iterar a través de la matriz, verificando todos los valores, para determinar si ya aparecieron y permitir que sepas dónde se encuentra el duplicado. Al insertar un bucle dentro del otro, el código puede verificar cada elemento y compararlo con los anteriores. Trata de comprender el proceso pensando qué pasaría cuando el código se ejecute cada vez que añadas una nueva estructura de control.

Nivel de dificultad:
Moderado

Otras personas están leyendo

Instrucciones

  1. 1

    Crea tu matriz numérica. Si todavía no tienes una en el programa, puedes utilizar el siguiente ejemplo:

    int[] myNums = {3, 5, 1, 6, 5, 8, 7};

    Esta línea representa y crea una instancia de una matriz con valores enteros primitivos. Como puedes ver, el valor duplicado es el número cinco. Prepara dos variables para almacenar el valor numérico duplicado y la posición en la que se encuentra dentro de la matriz:

    int dupNum = -1; int dupPos = -1;

    Al inicializar esta negativa, podrás determinar si el proceso encuentra el valor duplicado en la matriz o no.

  2. 2

    Crea un bucle para iterar a través de la matriz. Añade el siguiente esquema de bucle al programa:

    for(int i=1; i<myNums.length; i++) { //process contents here }

    Este bucle iterará una vez por cada elemento dentro de la matriz numérica. Dentro del bucle, puedes implementar el proceso de verificación, comparando cada elemento con los anteriores dentro de la estructura. Almacena el valor numérico actual en una variable local dentro del bucle: int currNum = myNums[i];

    Este valor representa el entero en la posición actual cada vez que el bucle itera.

  3. 3

    Crea un segundo bucle dentro del primero. Añade el siguiente esquema luego de haber almacenado el valor actual en su variable:

    for(int j=0; j<i; j++) { //check previous values }

    Dentro de este bucle, puedes comparar el valor actual con los que aparecen en posiciones anteriores dentro de la matriz. De esta manera puedes determinar si el valor actual es un duplicado.

  4. 4

    Compara el número actual con los valores anteriores. Dentro del segundo bucle, añade la siguiente instrucción condicional:

    if(currNum==myNums[j]) { //the value is a duplicate }

    Si el análisis arroja algún resultado real, significa que el elemento actual de la matriz es equivalente a uno anterior, y su posición estará indicada por el contador del segundo bucle. Dentro de la instrucción condicional, indícale al programa qué tiene que hacer cuando se encuentra con un duplicado:

    dupNum = currNum; dupPos = i; break;

    El código establece los valores de los números duplicados y su posición, a fin de que se encuentren accesibles cuando finalice el bucle. En este punto, no tiene sentido continuar con el bucle, por lo que la instrucción "break" (detener) hace que deje de iterar.

  5. 5

    Detén el primer bucle. La instrucción "break" solo detiene el código del bucle más cercano. Esto significa que el externo continuará aunque hayas encontrado el valor duplicado. Luego del símbolo de cierre del bucle interno, añade la siguiente instrucción condicional:

    if(dupNum>=0) break;

    Si no encontró el duplicado, el bucle externo continuará ejecutándose. Puedes añadir la siguiente instrucción de evaluación luego del cierre del bucle externo:

    System.out.println("Duplicated number: " + dupNum + ", position: " + dupPos);

    Si el código no localizó un duplicado, ambas variables cotinuarán almacenando valores negativos.

Consejos y advertencias

  • Los bucles insertados pueden ser un desafío al principio, a causa de la circulación compleja de ejecución que implican, pero te pueden ayudar a implementar los procesos de manera concisa.
  • Si necesitas detectar más de un duplicado, es posible que debas crear una segunda matriz para almacenar estos valores.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles