Diferentes tipos de Map

2971 vistas

El API propone cinco implementaciones concretas para los 'Map' (java.util.Map). Un Map permite crear un conjunto de parejas clave/valor (tambén llamados tablas asociativas), lo que permite que, mediante la clave, se encuentre rápidamente el valor asociado. Las claves son objetos únicos no NULL. Los valores pueden repetirse o, incluso, ser nulos.

java.util.HashMap:
La clase java.util.HashMap es la implementación más estándar adaptada a la mayorÃa de situaciones.

java.util.TreeMap:
La clase java.util.TreeMap añade una función de clasificado de las llaves del Map. El orden de las claves pueden escogerse dando una instancia de java.util.Comparator, sino se usará el el orden natural de llaves (que tienen que implementar java.lang.Comparable). Si tenemos gran cantidad de datos a añadir a la collection y el orden de las claves no es importante hasta después de la inserción, es más eficaz crear un HashMap para añadir los elementos y construir el TreeMap a partir del HasMap :



java
  1. Map map = new HashMap();
  2. // todas las operaciones para añadir lso elementos...
  3. map.put(....);
  4.  
  5. // ... después construimos el TreeMap.
  6. map = new TreeMap(map);



java.util.LinkedHashMap:
La clase java.util.LinkedHashMap conserva el orden de la inserción de las llaves.

java.util.IdentityHashMap:
La clase java.util.IdentityHashMap usa el operador '==' para saber si dos claves son idénticas.

java.util.WeakHashMap:
La clase java.util.WeakHashMap conserva las parejas usando referencias débiles, por lo tanto, si la clave no se usa en otro lado del programa, la pareja se borrará de forma automática de la collection (ver java.lang.ref.WeakReference).

java.util.Hashtable:
La clase java.util.Hashtable es una clase heredada de Java 1. Sólo se conserva por razones de compatibilidad y no deberÃa de usarse en aplicaciones nuevas. En todo caso, es preferible usar un HashMap.