HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(5,a);
map.put(4,b);
map.put(3,c);
map.put(2,d);
map.put(1,e);
System.out.println(map);
Почему результат равен {1 = e, 2 = d, 3 = c, 4 = b, 5 = a}?
Java HashMap
не сохраняет никакого порядка. API говорит
Этот класс не дает никаких гарантий относительно порядка карты; в частности, он не гарантирует, что порядок будет оставаться постоянным с течением времени.
Из HashMap
javadoc:
Этот класс не дает никаких гарантий относительно порядка карты; в частности, он не гарантирует, что порядок будет оставаться постоянным с течением времени.
LinkedHashMap
будет достаточным для упорядочения по порядку вставки, и TreeMap
может использоваться, когда требуется заказ с помощью компаратора ключей.