Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arrays asociativos
Ingeniera del software 2
Arrays asociativos
Por qu se llaman arrays asociativos?
Los arrays normales estn indexados por un nmero
entero entre 0..n-1.
Los arrays asociativos se indexan por cualquier objeto,
ese objeto tiene que funcionar como clave.
Cmo se implementan los arrays asociativos en
Java?
La interfaz Map, que est implementada en la clase
HashMap.
Cmo se llaman tambin?
Diccionarios, Mapas.
2
Map
Son estructuras de datos donde cada valor del
array tiene asociado una clave. Esta clave se
usa para recuperarlo.
Se trabaja con dos objetos: uno que se utiliza
como clave (Key) y otra para almacenar los
valores (Value).
Esta estructura de datos nos permite obtener
el valor a partir de su clave.
3
HashMap
Es una implementacin concreta del Map
Por ejemplo, podramos almacenar personas y
utilizar su DNI como clave, o coches y utilizar su
matricula como clave.
4
Mtodos
Value put(Key key, Value value) Aade un nuevo par clave-valor al diccionario.
Value get(Object key) Da el valor asociado a una clave o null si no se
encontr.
Value remove(Object key) Elimina el par clave-valor que corresponde a la clave.
boolean containsKey(Object key) Comprueba si est la clave especificada.
5
Ejemplo 1
package ejemplohashmap1;
import java.util.HashMap;
public class EjemploHashmap1 {
}
}
6
Ejemplo 2
package ejemplohashmap2;
import java.util.HashMap;
7
Ejemplo 3
package ejemplohashmap3;
import java.util.HashMap;
// Opcin 1
System.out.println("Does cars contains plate GC 1245 BPX: " + cars.containsKey ("GC 1245 BPX"));
// Opcin 2
System.out.println("Does cars contains plate GC 1245 BPX: " + cars.containsKey ("GC 1245 BPX"));
System.out.println("The model is: " + cars.get("GC 1245 BPX").getModel());
}
}
8
Ejemplo 3
package ejemplohashmap3;
9
Kata 2
Dado el siguiente vector: [2,2,11,4,2,6,11,2,3,5,11,5]
Se pide realizar una aplicacin para el clculo del histograma, es decir la
frecuencia de cada nmero. El resultado debe ser:
2->4
3->1
4->1
5->2
6->1
11->3
10