Primer numero repetido

01/Nov/2007 Java , , , , 5 Comentarios

Con este algoritmo pretendemos buscar el primer elemento que está repetido dentro de un array utilizando el lenguaje Java.

La idea general es trabajar con dos arrays. En el primero tenemos la lista de elementos general y en el segundo iremos introduciendo los elementos leídos. Por cada elemento que tengamos en el array principal vamos a buscar al de los leídos para ver si ya está. En el caso de que esté será que dicho elemento es el primer elemento repetido. Será entonces cuando acabemos nuestra ejecución.

Pero vamos por partes. Lo primero que hay que hacer es declarar los dos arrays. El que contiene los números inicialmente y el que irá conteniendo los leídos. El tamaño del segundo array será igual que el tamaño del primero.

int[] listaNumeros = {1,4,7,8,9,2,7,15,4,6,9,9,8};
int[] listaNumerosLeidos = new int[listaNumeros.length];

Una vez definidos los arrays empezamos a recorrer el array listaNumeros. Para ello utilizamos un bucle while que controle el tamaño y una variable bEncontrado que nos servirá como condición de guarda para salir del bucle en el caso de que encontremos el número repetido, evitando así el recorrer todo el bucle una vez encontrado lo que buscamos.

while((x<listaNumeros.length) && (bEncontrado != true)) {...}

Con cada número volveremos a recorrer la lista de leídos. Este bucle será el mismo que el anterior, pero sobre listaNumerosLeidos.

while ((y<listaNumerosLeidos.length) && (bEncontrado != true)) {...}

Será dentro de este segundo bucle donde realicemos la validación. Está será validar si el número del primer array coincide con el número actual del segundo array. En caso afirmativo cambiaremos el valor de la variable bEncontrado.

if (listaNumeros[x] == listaNumerosLeidos[y])
   bEncontrado = true;

Si el elemento del array principal no coincide con ninguno de los elementos del array de los número leídos, será introducido en dicho array. Ocupando la misma posición que ocupaba en el array principal.

if (!bEncontrado)
   listaNumerosLeidos[x] = listaNumeros[x];

Para acabar, solo mostraremos la información en el caso de tener activada la variable bEcontrado.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

5 comentarios en “Primer numero repetido”

Víctor Cuervo

Víctor Cuervo

@lira, @cesar,

Ya tenéis el código explicado en http://lineadecodigo.com/java/numero-de-ocurrencias-en-un-array/

Víctor Cuervo

Víctor Cuervo

@lira, @cesar,

Podéis ir contando las ocurrencias e insertarlas en un HashMap.

for (int x=0;x<listaNumeros.length;x++) {			
  clave = listaNumeros[x];
  if (hm.containsKey(clave))
    hm.put(clave, hm.get(clave)+1);
  else
    hm.put(clave,1);			
}

Luego solo queda listar el HashMap y solucionado
http://lineadecodigo.com/java/listar-un-mapa-con-java-util/

De todas maneras intentaré publicarlo pronto en la web. 😀

Espero que esto os sirva de ayuda.

Víctor Cuervo

cesar

hola
podrian poner un ejemplo de como dice lira en el comentario

Víctor Cuervo

lira

como se pueden buscar numeros repetidos
como el nueve que esta en el ejemplo
y que se muestre cuantas veces se repite
si alguien me puede explicar mi correo es lira_dark@hotmail.com
me pueden dejar un mensaje

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*