metodos java hashmap

metodos - hashmap en java



HashMap busca un valor especĂ­fico en mĂșltiples claves (3)

Deberá examinar cada entrada en HashMap. Este ciclo debería verificar los contenidos de ArrayList para su searchcourse e imprimir la clave que contenía el valor.

for (Map.Entry<String,ArrayList> entries : hashmap.entrySet()) { if (entries.getValue().contains(searchcourse)) { System.out.println(entries.getKey() + " contains " + searchcourse); } }

Aquí están los javadocs relevantes:

Map.Entry

entrySet HashMap entrySet

ArrayList contains método

Estoy comprobando si existe una clave en mi HashMap, si es así, también deseo verificar si otras claves tienen un valor con el mismo nombre que la clave original que revisé o no.

Por ejemplo, tengo esto.

System.out.println("What course do you want to search?"); String searchcourse = input.nextLine(); boolean coursefound = false; if(hashmap.containsKey(searchcourse) == true){ coursefound = true; }

Esto comprueba si la clave existe en mi hashmap, pero ahora necesito verificar los valores de cada clave para un valor específico, en este caso el curso de cadena.

Usualmente usaría un bucle for para iterar a través de algo como esto, pero no funciona con HashMaps. Mis valores también se almacenan en String ArrayList, si eso ayuda.


Puedes tener un mapa bidireccional. Por ejemplo, puede tener un Map<Value, Set<Key>> o MultiMap para los valores de las teclas o puede usar un mapa bidireccional que se planea agregar a Guava.


Según entiendo tu pregunta, los valores en tu mapa son List<String> . Es decir, su mapa se declara como Map<String, List<String>> . Si es así:

for (List<String> listOfStrings : myMap.values()) [ if (listOfStrings .contains(searchcourse) { // do something } }

Si los valores son solo Cadenas, es decir, el Mapa es un Map<String, String> , entonces @Matt tiene la respuesta simple.