A continuación se muestran los valores que contiene el HashMap
statusName {Active=33, Renewals Completed=3, Application=15}
Código Java para obtener la primera clave (es decir, activa)
Object myKey = statusName.keySet().toArray()[0];
¿Cómo podemos recopilar el primer "Valor" clave (es decir, 33)? Quiero almacenar tanto la "Clave" como el "Valor" en una variable separada.

HashMapentradas están desordenadas y, por lo tanto, "primero" podría cambiar cada vez que modifique el mapa?HashMap? Si lo modifica, puede obtener los resultados en un orden completamente diferente.Respuestas:
Puedes probar esto:
Tenga en cuenta
HashMapque no garantiza el pedido de inserción. Utilice aLinkedHashMappara mantener el orden intacto.P.ej:
Salida:
fuente
com.google.gson.internal.LinkedTreeMap cannot be cast to...... mi clase que dije en lugar de laStringen el lugar correcto ... no puedo encontrar la respuesta en líneaGsonpara convertir el objeto de valor enStringay luego analizarlo de nuevo a mi tipo de clase. Es feo, pero realmente no pude encontrar ninguna otra solución para algo que es tan fácil de hacer en otros idiomas (ahora estoy aprendiendo Java)Para obtener el "primer" valor:
Para obtener el valor de la "primera" clave:
Nota: el código anterior probado y funciona.
Digo "primero" porque las entradas de HashMap no están ordenadas.
Sin embargo, un LinkedHashMap itera sus entradas en el mismo orden en que se insertaron; puede usar eso para la implementación de su mapa si el orden de inserción es importante.
fuente
Forma de hacer Java 8,
String firstKey = map.keySet().stream().findFirst().get();fuente
También puede probar esto para obtener la primera entrada completa,
Esto para obtener solo la clave de la primera entrada,
Esto para obtener solo el valor de la primera entrada,
Además, en caso de que sepa lo que está haciendo y desee obtener el segundo elemento (lo mismo para el tercero, etc.) de un mapa, debe probar esto,
fuente
Al usarlo
youMap.get(keyYouHave), puede obtener el valor de la misma.Sí, puede asignar eso a una variable.
Espera ......... no ha terminado.
Si usted (lógica empresarial) depende del orden de inserciones y recuperaciones, verá resultados extraños. El mapa no está ordenado, no se almacenarán en un pedido. Tenga en cuenta ese hecho. Utilice alguna alternativa para conservar su pedido. Probablemente un
LinkedHashMapfuente
Tenga en cuenta que debe tener en cuenta que su flujo lógico nunca debe depender del acceso a los
HashMapelementos en algún orden, simplemente porque losHashMaps no están ordenadosCollectiony eso no es lo que pretenden hacer. (Puede leer más sobre colecciones ordenadas y clasificadoras en esta publicación ).Volviendo a la publicación, ya hiciste la mitad del trabajo cargando la clave del primer elemento:
Simplemente llame
map.get(key)para obtener el valor respectivo:fuente
Recuerde que el orden de inserción no se respeta en un mapa en general. Prueba esto :
Solo uso esto cuando estoy seguro de eso
map.size() == 1.fuente
Mejorando la respuesta de Whoami. Dado que
findFirst()devuelve unOptional, es una buena práctica comprobar si hay un valor.Además, algunos comentaron que encontrar la primera clave de a
HashSetno es confiable. Pero a veces tenemosHashMapparejas; es decir, en cada mapa tenemos una clave y un valor. En tales casos, es conveniente encontrar rápidamente la primera clave de dicho par.fuente
También es una buena forma de hacer esto :)
fuente
También puede probar a continuación:
fuente