Gandolf
¿Cómo imprimo información de un mapa que tiene el objeto como valor?
He creado el siguiente mapa:
Map<String, Object> objectSet = new HashMap<>();
El objeto tiene su propia clase con sus propias variables de instancia.
Ya he rellenado el mapa anterior con datos.
he creado un printMap
método, pero parece que solo puedo imprimir las claves del mapa
Como hago para obtener el mapa para imprimir el <Object>
valores usando un para cada ciclo?
Hasta ahora, tengo:
for (String keys : objectSet.keySet())
{
System.out.println(keys);
}
Lo anterior imprime las claves. También quiero poder imprimir las variables del objeto.
ser no-muerto
Estoy seguro de que hay una buena biblioteca que ya hace este tipo de cosas por ti… Pero para seguir con el enfoque que ya estás usando, Map#entrySet
te da un combinado Object
con el key
y el value
. Entonces algo como:
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue().toString());
}
hará lo que buscas.
Si está utilizando Java 8, también existe el nuevo enfoque de transmisión.
map.forEach((key, value) -> System.out.println(key + ":" + value));
-
vinculó la función lambda de J8
– como si
5 sep 2018 a las 12:51
-
Esta respuesta debería haber sido aceptada. ¡Pobre etiqueta SO! Gracias por publicar.
–James Drinkard
19/09/2018 a las 21:27
Puedes utilizar Map.entrySet()
método:
for (Map.Entry entry : objectSet.entrySet())
{
System.out.println("key: " + entry.getKey() + "; value: " + entry.getValue());
}
Hay un conseguir método en HashMap:
for (String keys : objectSet.keySet())
{
System.out.println(keys + ":"+ objectSet.get(keys));
}
-
Tendría cuidado al usar este enfoque para aplicaciones sensibles al tiempo porque el método de obtención interna es buscando linealmente O(n) por el valor correspondiente.
–Quazi Irfan
2 de enero de 2018 a las 23:56
-
El método get internamente hace una llamada a getNode(hash(key), key) que usa hashing. Hace una búsqueda lineal solo cuando hay una colisión hash.
– instancia aleatoria de cosa viviente
3 de enero de 2018 a las 2:51
Hace
Map
solo tengo unkeySet
¿método? ¿No tiene otros métodos?– Salvador
21 de abril de 2016 a las 23:36
¿Acabas de intentar
println(map)
?– chrylis -cautelosamente optimista-
22 de abril de 2016 a las 0:31
Además, ‘claves’ no es un buen nombre de variable para lo que en realidad es una clave.
– símbolo indefinido
13 de enero a las 18:09