martes, 6 de noviembre de 2012

Mapa con Llaves Duplicadas en Java

Existen ocasiones en las que se requiera implementar un mapa con llaves(keys) duplicadas, puede que existan otras soluciones, pero siendo nuestro objetivo el usar un mapa, podemos utilizar un mapa con una lista como su valor.

Aquí está un código de ejemplo.
Map<String, ArrayList<String>> mapa = new HashMap<String, ArrayList<String>>();
String llave = "algunaLlave";// String con el valor de la llave a insertar

ArrayList<String> listaTemporal;

if (mapa.containsKey(llave)) {
  listaTemporal = mapa.get(llave);
  if (listaTemporal == null) {
    listaTemporal = new ArrayList();
  }
  // Se agrega valor asociado a la llave, en este ejemplo un String,
  // puede ser cualquier objeto
  listaTemporal.add("algunValor");            
} else {
  listaTemporal = new ArrayList();
  listaTemporal.add("algunValor");
}
mapa.put(llave, listaTemporal);