我知道keyset()不保证任何特定的顺序,但是values()与keyset()的顺序相同吗? Linkedhashmap怎么样?似乎它可以提供一致的订单键集,假设它也获得相同的订单值()?
答案 0 :(得分:2)
哈希表中绝对没有关于顺序的承诺。
答案 1 :(得分: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
:始终明确地为您的问题建模。