搜尋
首頁JavaJava基礎java中HashMap和LinkedHashMap的區別

java中HashMap和LinkedHashMap的區別

Nov 18, 2019 pm 02:19 PM
hashmapjavalinkedhashmap差別

java中HashMap和LinkedHashMap的區別

HashMap

hashMap是最常用的Map,根據鍵的HashCode值儲存數據,可以根據鍵直接取得它的值,具有很快的訪問速度,遍歷時候的順序是完全隨機的。 HashMap只允許一個鍵為Null,允許多個值為Null。

特性: 完全隨機

優點: 隨機訪問,取值速度快

缺點: 多個執行緒同時寫HashMap可能導致資料不一致,如果需要同步,使用Collection的synchronizedMap方法或使用ConcurrentHashMap

##LinkedHashMap##LinkedHashMap是HashMap的子類,保存了記錄的插入順序,與HashMap的隨機遍歷不同,在用Iterator遍歷的時候,先得到的記錄肯定是先插入的,類似python中的OrderedDict。

遍歷速度會比HashMap慢,不過有一種情況例外: 當HashMap的容量很大,實際資料很少時, 因為HashMap的遍歷速度和它的容量有關,而LinkedHashMap只跟實際資料量有關。

TreeMap

TreeMap實作SortMap接口,能夠將它保存的記錄按鍵排序,預設是按鍵的升序排列,也可以指定排序的比較器,遍歷TreeMap的時候,得到的記錄是依照鍵排過序的。

根據資料選擇Map

一般情況下,我們用的最多的是HashMap,在Map中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自訂順序遍歷鍵,那麼TreeMap會更好。如果需要輸出的順序和輸入的相同,那麼用LinkedHashMap可以實現,它還可以按讀取順序來排列。

推薦教學:

Java教學

以上是java中HashMap和LinkedHashMap的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器