Artículos
Java

Número de ocurrencias en un array

30/Mar/2011

Un par de nuestros usuarios nos preguntaban sobre cómo calcular las ocurrencias que aparecen en un array de números. Es decir, cuántas veces aparece un número en u n array. Así, que vamos a ver cómo hacerlo…

La idea será recorrer el array (no nos queda otro remedio) y mientras recorremos el array guardar los números en un HashMap. Dónde la clave es el número a contabilidad y el valor asociado a esa clave la cantidad de veces que aparece dicho número.

Lo primero, el array y el HashMap:

int[] listaNumeros = {1,4,7,8,9,2,7,15,4,6,9,9,8};
HashMap hm = new HashMap();

Ahora empezamos a recorrer el array. Si el número del array ya está en el HashMap, esto nos lo dice el método .containsKey(), incrementamos su valor en uno. Si elemento no está en el array lo inicializamos con 1.

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);			
}

Para acceder a los elementos de HashMap utilizamos los método .put() y .get()

Una vez cargado el HashMap solo nos quedará listarlo para ver los valores de los números y las ocurrencias que había en el array.

Para listar los elementos del HashMap vamos a utilizar un Iterator, el cual se apoyará en un conjunto o Set devuelto por el HashMap mediante el metodo .entrySet()

Hay que tener cuidado al manipular el conjunto devuelto por el HashMap ya que realmente es una vista del HashMap. Así que cualquier operación de borrado que hagamos sobre la vista se reflejará directamente en el HashMap.

Iterator < Entry < Integer,Integer > > it = hm.entrySet().iterator();
String vez;
 		
while (it.hasNext()) {
  Entry e = it.next();
  vez = (e.getValue()>1)?" veces":" vez";
  System.out.println("El número " + e.getKey() + " aparece " + e.getValue() + vez);
}

Si nos fijamos en el código, cada entrada está representada por un par clave/valor, que en Java se representa con un Map.Entry y que tienen sus métodos .getKey() y .getValue()

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
1 Comentario
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios