hashmap
hashMap是最常用的Map,根據(jù)鍵的HashCode值存儲數(shù)據(jù),可以根據(jù)鍵直接獲取它的值,具有很快的訪問速度,遍歷時(shí)候的順序是完全隨機(jī)的。HashMap只允許一個(gè)鍵為Null,允許多個(gè)值為Null。
特性: 完全隨機(jī)
優(yōu)點(diǎn): 隨機(jī)訪問,取值速度快
缺點(diǎn): 多個(gè)線程同時(shí)寫HashMap可能導(dǎo)致數(shù)據(jù)不一致,如果需要同步,使用Collection的synchronizedMap方法或者使用ConcurrentHashMap
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
LinkedHashMap
LinkedHashMap是HashMap的一個(gè)子類,保存了記錄的插入順序,與HashMap的隨機(jī)遍歷不同,在用Iterator遍歷的時(shí)候,先得到的記錄肯定是先插入的,類似于python中的OrderedDict。
遍歷速度會比HashMap慢,不過有一種情況例外: 當(dāng)HashMap的容量很大,實(shí)際數(shù)據(jù)很少時(shí) , 因?yàn)镠ashMap的遍歷速度和它的容量有關(guān),而LinkedHashMap只跟實(shí)際數(shù)據(jù)量有關(guān)。
TreeMap
TreeMap實(shí)現(xiàn)SortMap接口,能夠?qū)⑺4娴挠涗洶存I排序,默認(rèn)是按鍵的升序排列,也可以指定排序的比較器,遍歷TreeMap的時(shí)候,得到的記錄是按照鍵排過序的。
根據(jù)數(shù)據(jù)選擇Map
一般情況下,我們用的最多的是HashMap,在Map中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好。如果需要輸出的順序和輸入的相同,那么用LinkedHashMap可以實(shí)現(xiàn),它還可以按讀取順序來排列。
推薦教程:Java教程
以上就是java中HashMap和LinkedHashMap的區(qū)別的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號