Hola os comento:
Tengo un hashMap cuya clave es un String y cuyo valor es un ArrayList<String> que contiene diversas palabras
Osea:
Map<String, List<String>> multiMapa = new HashMap<String, List<String>>();
Ahora lo que hago es que si encuentro una clave en el hashMap (usando containsKey()) quiero obtener los elementos del arrayList de esa clave y meterlos en otro ArrayList distinto.
Como puedo hacerlo?
valdría?:
if(multiMapa.containsKey(anagrama)) {
List<String> lista = new ArrayList<String>();
lista = multiMapa.get(anagrama);
}
Obtengo así el arrayList (el Value del hashMap) y puedo igualarlo directamente al nuevo arrayList llamado lista???
gracias de antemano.
Map<String, List<String>> multiMapa = new HashMap<String, List<String>>();
List<String> listaEncontrada = new ArrayList<String>();
for(String clave : multiMapa.keySet()) {
if(clave.equals("CRITERIO_BUSQUEDA")) {
listaEncontrada = (List<String>)multiMapa.get(clave);
break;
}
}
if(listaEncontrada != null && !listaEncontrada.isEmpty()) {
for(String valor : listaEncontrada) {
System.out.println("Valor: "+valor);
}
}
Vale muchas gracias, al final lo que hice fue esto:
...
Map<String, List<String>> multiMapa = new HashMap<String, List<String>>();
...
public void buscar_Anagramas(String anagrama) {
//Comprobamos si nuestro anagrama está en el hashmap
List<String> lista = new ArrayList<String>();
if(multiMapa.containsKey(anagrama)) {
lista = (List<String>)(multiMapa.get(anagrama));
}
else
System.out.println("\n No existe ninguna coincidencia\n\n");
imprimir_Coincidencias(lista);
}
Parece que me funciona, así que bien. xD
saludos y gracias de nuevo.
De hecho, es mejor lo que has hecho, manualmente recorría el ciclo y posteriormente comparaba, el método "containsKey" hace lo mismo, pero en teoría es más eficiente...
Así que como lo tienes esta bien.