(Ayuda) Plantillas en java

Iniciado por Seyro97, 5 Abril 2015, 01:07 AM

0 Miembros y 1 Visitante están viendo este tema.

Seyro97

Hola, ¡muy buenas a todos y a todas!

Aprendiendo por ahí como usar cierta librería, me he encontrado con una estructura que sabía que existía de C++, pero nunca he llegado a saber para que sirve.

Estrucutra:

Código (java) [Seleccionar]
private Map<String, Integer> locationCache = new HashMap<String, Integer>();

Entonces, ¿alguien me la podría explicar? Gracias
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

Usuario Invitado

#1
No se llama plantilla. Map es un objeto que almacena valores en pares Key - Value, o Llave - Valor. El primer parámetro genérico es el tipo de objeto que será la Llave, y el segundo parámetro genérico es el tipo de objeto que guardará, es decir el valor.

La interface Map, está definida como:

Código (java) [Seleccionar]
Map<K,V>

K significa Key y V, value. Los valores para K y V son asignados en tiempo de ejecución. A ésto se le llama Generics. K y V pueden tomar cualquier valor (siempre y cuando sean objetos, no primitivos), lo que nos da mucha flexibilidad y seguridad, ya que, una vez declarados los tipos de objetos Key y Value, dicho Map solo dejará guardar valores que correspondan a esos tipos. Si tratas de colocarle otro tipo de dato, ni siquiera te dejará compilar. Ésto, nos ahorra muchos problemas que tendríamos en tiempo de ejecución.


Un saludo.

PD: El "ayuda" está de más. Se supone que eso se intuye cuando se lee el tema.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Seyro97

Vaya, entonces, ¿para que serviría la clase map (es que no he entendido bien eso de las llaves y valores)? Se que está en la documentación, pero si uno lo explica directamente, el otro lo entenderá mejor :D
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!

Oblivi0n

Un mapa asocia una clave (Key, generalmente el primer parametro ) a un valor ( Value, el segundo parametro por lo general )

Es decir, podríamos hacer

Map<String, String> mapa = new HashMap<String, String>();

mapa.put("Pepe","Guapo");
mapa.put("Jose","Tonto"),

Entonces al hacer mapa.get("Pepe") obtendrías "Guapo"


Seyro97

¡Vaya! Muchas gracias por su rápida y clara respuesta :D
Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!