更新時間:2022-03-30 08:37:14 來源:動力節點 瀏覽2993次
HashMap是什么?HashMap 和 LinkedHashMap 是 Map 的常見實現。HashMap 和 LinkedHashMap 的主要區別在于 LinkedHashMap 維護了鍵的插入順序,即鍵插入到 LinkedHashMap 中的順序,而 HashMap 不維護任何鍵的順序。
在這篇文章中,我們將通過示例分享 HashMap 和 LinkedHashMap 之間的異同。
1.插入順序: HashMap不維護順序,而LinkedHashMap維護java中元素的插入順序。
2. 內存:HashMap 和 LinkedHashMap 的第二個區別是內存。由于排序特性,LinkedHashMap 比 HashMap 需要更多的內存。內部 LinkedHashMap 使用雙向鏈表來維護元素的順序。
3.繼承: LinkedHashMap擴展了HashMap,實現了Map接口,HashMap實現了Map接口。
1. HashMap 和LinkedHashMap 返回的迭代器本質上都是fail-fast。
2. HashMap和LinkedHashMap在性能上都差不多。
3. LinkedHashMap 和 HashMap 不同步,如果在沒有適當同步的情況下在多個線程之間共享,則會受到競爭條件的影響。
1. 重新輸入一個值不會改變 LinkedHashMap 的插入順序。例如,
如果您已經有一個鍵并且您想使用 put(key, newValue) 更新它的值,則 LinkedHashMap 的插入順序將保持不變。
2. LRU(最近最少使用)緩存可以通過使用LinkedHashMap來創建。由于在 LRU 緩存中,最舊的未訪問條目被刪除,它是 LinkedHashMap 維護的雙向鏈表的頭部。
3、LinkedHashMap的迭代器以插入順序或訪問順序返回元素。
4. 有一個名為 removeEldestEntry() 的受保護方法,其默認實現返回 false。如果該方法被覆蓋,則在添加新條目時,實現可以返回 true 以刪除最舊的條目。
這就是java中HashMap和LinkedHashMap之間的區別。如果大家想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程內容細致全面,由淺到深,從入門到精通,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習