簡體   English   中英

哈希圖是否按字母順序排列?

[英]Hashmap is put into alphabetical order?

我有一個HashMap定義如下:

private final Map<String, DataTable> reports = new HashMap();

當我將新條目放入此HashMap時,它們將根據密鑰以字母順序結束。 為什么這樣做呢? 如何將它們添加到HashMap中的順序?

HashMap確實明確定義了添加元素的順序。 就像在HashSet一樣,元素的哈希碼是有序的,這或多或少是隨機的。

如果要按插入順序保留Map中的順序,則可以改用LinkedHashMap 或者,如果元素應在插入后進行排序,則使用TreeMap

HashMap的全部要點是您放棄了對順序的控制,因此可以獲得插入和搜索時的性能提升以及其他好處。 要恢復對排序的控制,請使用SortedMap進行研究

LinkedHashMap- preserve the insertion order.
TreeMap - Elements sorted after insertion.

HashMap不會維護插入元素的任何順序。

HashMap不會以您添加方式的方式添加值,而只是根據鍵隨機添加值。 要按添加順序添加值,請使用LinkedHashMap或者,如果您希望Map按字母順序排序,請使用TreeMap。 我希望這可以消除您的疑問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM