hashmap keyset automatically sorted

13,860

Solution 1

  1. HashMap makes absolutely no guarantees about the iteration order. It can (and will) even change completely when new elements are added.

  2. LinkedHashMap will iterate in the order in which the entries were put into the map

Source

Solution 2

The order in which you see the entries in the HashMap depends on the hash codes of the keys and order of the entries in the bucket I believe and it is implementation dependent, but don't rely on HashMap for ordering at all. Whereas LinkedHashMap and TreeMap do guarantee a certain order.

Share:
13,860
Jochem Gruter
Author by

Jochem Gruter

Updated on July 22, 2022

Comments

  • Jochem Gruter
    Jochem Gruter almost 2 years
        HashMap<String, String[]> content = new HashMap<String, String[]>();
    
        content.put("Help", new String[]{"About"});
        content.put("View", new String[]{"Grid"});
        content.put("File", new String[]{"Import", "Export"});
    
        for(String key : content.keySet()){
            System.out.println(key);
        }
    

    The above code logs:

    View
    Help
    File
    

    But why is this sorted?