Saltar al contenido

Java HashMap: ¿Cómo obtener una clave y un valor por índice?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *