我定義如下一個HashMap:散列表是按字母順序排列的嗎?
private final Map<String, DataTable> reports = new HashMap();
當我把新的項目進入此HashMap他們基於鍵字母順序結束。它爲什麼這樣做?我如何將它們添加到HashMap中?
我定義如下一個HashMap:散列表是按字母順序排列的嗎?
private final Map<String, DataTable> reports = new HashMap();
當我把新的項目進入此HashMap他們基於鍵字母順序結束。它爲什麼這樣做?我如何將它們添加到HashMap中?
A HashMap
確實明確定義了您添加的元素的NO順序。就像在HashSet
中那樣,這些元素是由它們的哈希碼構造的,這或多或少是隨機的。
如果要按照插入順序保存地圖中的順序,則可以改爲使用LinkedHashMap。如果元素在插入後應該排序,則使用TreeMap。
HashMap的重點在於你放棄了對排序的控制,這樣你就可以在插入和搜索時獲得性能提升,以及其他好處。要取回訂單的控制權,請使用SortedMap。
LinkedHashMap- preserve the insertion order.
TreeMap - Elements sorted after insertion.
HashMap不保留任何插入元素的順序。
HashMap不會按照添加方式添加值,只是根據鍵隨機添加值。要按照您要添加的順序添加值,請使用LinkedHashMap
,或者如果您希望地圖按字母順序排序,則使用TreeMap。我希望這消除你的懷疑。
你是什麼意思「按字母順序結束」?你能展示更多的代碼嗎? – arshajii
未訂購HashMaps。 TreeMaps是。 – bcsb1001
字符串的自然順序**是**字母順序,並且'HashMap'沒有排序。 – Kayaman