Map的四種遍歷方式

2021-08-26 02:13:45 字數 1619 閱讀 1784

前面學習總結了list的使用及效率對比,今天總結學習一下鍵值對映關係map,順便學習一下android中使用map需要注意哪些,以及谷歌官方針對android對map做了哪些優化。

map 是一種把鍵物件和值物件對映的集合,它的每乙個元素都包含一對鍵物件和值物件。 map沒有繼承於collection介面 從map集合中檢索元素時,只要給出鍵物件,就會返回對應的值物件。 

map是乙個介面,例項化map可以採用下面的方式:

map的基本操作:

這裡以最常用的hashmap為例

新增資料

maphashmap = new hashmap<>();

for (int i = 0; i < maxcount; i++)

遍歷entryset方式

long start = system.currenttimemillis();

for (map.entryentry : hashmap.entryset())

long end = system.currenttimemillis();

log.e(tag, "for-each方式 cost time : " + (end - start));

entryset迭代器遍歷方式

long start1 = system.currenttimemillis();

iterator> entries = hashmap.entryset().iterator();

while (entries.hasnext())

long end1 = system.currenttimemillis();

log.e(tag, "entryset iterator迭代器 cost time : " + (end1 - start1));

鍵找值遍歷

long end1 = system.currenttimemillis();

log.e(tag, "iterator迭代器 cost time : " + (end1 - start1));

long start2 = system.currenttimemillis();

for (integer key : hashmap.keyset())

long end2 = system.currenttimemillis();

log.e(tag, "鍵找值遍歷 cost time : " + (end2 - start2));

keyset迭代器遍歷

long start3 = system.currenttimemillis();

iteratoriterator=hashmap.keyset().iterator();

while (iterator.hasnext())

long end3 = system.currenttimemillis();

log.e(tag, "keyset iterator迭代器 cost time : " + (end3 - start3));

上述四種情況執行結果如下:

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...