Набор ключей и значения имеют одинаковый порядок в 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
всегда моделируйте вашу проблему явно.