键集和值在hashmap中具有相同的顺序

时间:2014-03-11 03:03:36

标签: java hashmap

我知道keyset()不保证任何特定的顺序,但是values()与keyset()的顺序相同吗? Linkedhashmap怎么样?似乎它可以提供一致的订单键集,假设它也获得相同的订单值()?

2 个答案:

答案 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!
}

这个习语使问题无关紧要,因为你以关键值对的形式浏览地图中的条目。

如前所述,除了SortedMapLinkedHashMap之外,没有订单保证。如果您的密钥总排序,请使用SortedMap:始终明确地为您的问题建模。