Порядок элементов в HashMap Java

1
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}?

  • 0
    Это не равно, это отображается, ключ = значение
  • 0
    если вам нужен порядок сторт на вашей карте, вам нужна SortMap
Показать ещё 1 комментарий
Теги:
hashmap

2 ответа

3

Java HashMap не сохраняет никакого порядка. API говорит

Этот класс не дает никаких гарантий относительно порядка карты; в частности, он не гарантирует, что порядок будет оставаться постоянным с течением времени.

  • 0
    «Итак, попробуйте несколько раз, вы получите другой порядок печати содержимого». Также не гарантируется, что все будет иначе. Вы уверены, что фиктивные заказы не возвращаются детерминистически?
  • 0
    @hexafraction: Не уверен, я думаю, удалил эти строки
0

Из HashMap javadoc:

Этот класс не дает никаких гарантий относительно порядка карты; в частности, он не гарантирует, что порядок будет оставаться постоянным с течением времени.

LinkedHashMap будет достаточным для упорядочения по порядку вставки, и TreeMap может использоваться, когда требуется заказ с помощью компаратора ключей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню