![](/img/trans.png)
[英]When Does HashMap.values()/HashMap.keySet() Return By Reference And When Does It Return By Value?
[英]does keyset and values have same order in hashmap
據我所知keyset()不能保證任何特定的順序,但是values()是否與keyset()的順序相同? 鏈接哈希表怎么樣? 似乎它可以提供一致的順序鍵集,假設它也獲得相同的順序values()?
哈希表中絕對沒有關於順序的承諾。
遍歷任何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
:始終明確地對問題建模。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.