Solución:
Aquí está la solución general si realmente solo desea el valor de la primera clave
Object firstKey = myHashMap.keySet().toArray()[0];
Object valueForFirstKey = myHashMap.get(firstKey);
Puede iterar sobre las claves llamando map.keySet()
, o iterar sobre las entradas llamando map.entrySet()
. Probablemente sea más rápido repetir las entradas.
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
List<String> list = entry.getValue();
// Do things with the list
}
Si desea asegurarse de iterar sobre las claves en el mismo orden en que las insertó, utilice un LinkedHashMap
.
Por cierto, recomendaría cambiar el tipo declarado de mapa a <String, List<String>>
. Siempre es mejor declarar los tipos en términos de la interfaz en lugar de la implementación.
Los HashMaps no se ordenan, a menos que use un LinkedHashMap
o SortedMap
. En este caso, es posible que desee LinkedHashMap
. Esto iterará en orden de inserción (o en orden de último acceso si lo prefiere). En este caso, sería
int index = 0;
for ( Map.Entry<String,ArrayList<String>> e : myHashMap.iterator().entrySet() ) {
String key = e.getKey();
ArrayList<String> val = e.getValue();
index++;
}
No hay get (índice) directo en un mapa porque es una lista desordenada de pares clave / valor. LinkedHashMap
Es un caso especial que mantiene el orden.