hashmap
最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。hashmap最多隻允許一條記錄的鍵為null(多條會覆蓋);允許多條記錄的值為 null。非同步的。
treemap
能夠把它儲存的記錄根據鍵(key)排序,預設是按公升序排序,也可以指定排序的比較器,當用iterator 遍歷treemap時,得到的記錄是排過序的。treemap不允許key的值為null。非同步的。
hashtable
與 hashmap類似,不同的是:key和value的值均不允許為null;它支援執行緒的同步,即任一時刻只有乙個執行緒能寫hashtable,因此也導致了hashtale在寫入時會比較慢。
linkedhashmap
儲存了記錄的插入順序,在用iterator遍歷linkedhashmap時,先得到的記錄肯定是先插入的.在遍歷的時候會比hashmap慢。key和value均允許為空,非同步的。
public class mapdemo
//map集合中的key值不能一致,一樣的時候下面的會把上面的覆蓋
system.out.println("-----------update-----------");
map.put("12213", 22);
set> entryset = map.entryset();
iterator> iterator = entryset.iterator();
//entryset關係集迴圈遍歷
while(iterator.hasnext())
system.out.println("-------------delete----------------------");
map.remove("12213");
//用collectionvalues = map.values();
iteratoriterator2 = values.iterator();
while(iterator2.hasnext())
system.out.println("----------通過map.entryset遍歷key和value-----------");
for (entryentry : map.entryset()) }}
總結增強for迴圈使用方便,但效能較差,不適合處理超大量級的資料。
迭代器的遍歷速度要比增強for迴圈快很多,是增強for迴圈的2倍左右。
使用entryset遍歷的速度要比keyset快很多,是keyset的1.5倍左右。
Map四種遍歷方式
mapmap new hashmap map.put key1 value1 map.put key2 value2 map.put key3 value3 第一種 普遍使用,二次取值 system.out.println 通過map.keyset遍歷key和value for string key...
遍歷Map的四種方式
map集合是鍵值對形式儲存的,對map的遍歷無非就是獲取對應的鍵和值,根據不同的map集合可能會使用不同的遍歷方式,我簡單梳理下對map的遍歷方式。private void testmap 2.通過map.entryset使用iterator遍歷key和value iterator it map.e...
map的四種遍歷方式
mapmap new hashmap map.put 1 t1 map.put 2 t2 map.put 3 t3 第一種 普遍使用,二次取值 system.out.println 通過map.keyset遍歷key和value for string key map.keyset 第二種 syste...