recorrer ordenado metodos example ejemplos diccionario java

ordenado - recorrer un linkedhashmap java



¿Cómo puedo ordenar las claves de un mapa en Java? (3)

Puede crear una colección ordenada al iterar, pero tiene más sentido tener un mapa ordenado en primer lugar. (Como ya se ha sugerido)

De todos modos, así es como lo haces.

Map<String, Object> map; for(String key: new TreeSet<String>(map.keySet()) { // accessed in sorted order. }

Esta es una pregunta muy básica, simplemente no soy tan bueno con Java. Tengo un Mapa y quiero obtener una lista o algo de las claves en orden para que pueda iterar sobre ellas.


Tienes varias opciones. Listado por orden de preferencia:

  1. Use un SortedMap :
    SortedMap<whatever> myNewMap = new TreeMap<whatever>(myOldMap);
    Esto es muy preferible si desea iterar más de una vez. Mantiene las claves ordenadas para que no tenga que ordenarlas antes de iterar.
  2. No hay n. ° 2
  3. No hay n. ° 3, tampoco.
  4. SortedSet<whatever> keys = new TreeSet<whatever>(myMap.keySet());
  5. List<whatever> keys = new ArrayList<whatever>(myMap.keySet()); Collections.sort(keys);

Los dos últimos le darán lo que quiere, pero solo deberían usarlo si solo desea repetir una vez y luego olvidarse de todo.


Use un TreeMap , que es una implementación de la interfaz SortedMap . Presenta sus claves en orden ordenado.

Map<String, Object> map = new TreeMap<String, Object>(); /* Add entries to the map in any order. */ ... /* Now, iterate over the map''s contents, sorted by key. */ for (Map.Entry<String, ?> entry : map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); }

Si está trabajando con otra implementación de mapa que no está ordenada como lo desea, puede pasarla al constructor de TreeMap para crear un nuevo mapa con claves ordenadas.

void process(Map<String, Object> original) { Map<String, Object> copy = new TreeMap<String, Object>(original); /* Now use "copy", which will have keys in sorted order. */ ... }

Un TreeMap funciona con cualquier tipo de clave que implemente la interfaz Comparable , poniéndolas en su orden "natural". Para las claves que no son Comparable , o cuya ordenación natural no es lo que necesita, puede implementar su propio Comparator y especificarlo en el constructor .