Набор ключей и значения имеют одинаковый порядок в hashmap

Насколько я знаю, keyset() не гарантирует какой-либо конкретный порядок, но получает ли values ​​() тот же порядок, что и keyset()? как насчет связанного хешмапа? кажется, что он может обеспечить согласованный набор ключей порядка, предположим, что он также получает те же значения порядка ()?

2 ответа

Лучший способ перебрать любую Java Map это использовать идиому:

for(Map.Entry<K,V> e : map.entrySet()){
  K theKey = e.getKey();
  V theValue = e.getValue();
  // do something with them!
}

Эта идиома делает вопрос неактуальным, когда вы просматриваете записи на карте в виде пар ключ-значение.

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

В хеш-таблицах нет никаких обещаний о порядке.

Другие вопросы по тегам