Map集合遍歷兩種方式區別和效能

2021-08-21 09:33:39 字數 1454 閱讀 1171

keyset():

將map中所有的鍵存入到set集合中。因為set具備迭代器。所有可以迭代方式取出所有的鍵,再根據get方法。獲取每乙個鍵對應的值。 keyset():迭代後只能通過get()取key 

entryset():

map.put("01", "zhangsan");

map.put("02", "lisi");

map.put("03", "wangwu");

collectioncollection = map.values();//返回值是個值的collection集合

system.out.println(collection);

列印結果:

[zhangsan, lisi, wangwu]

setkeyset() //返回值是個只存放key值的set集合(集合中無序存放的)

set> entryset() //返回對映所包含的對映關係的set集合(乙個關係就是乙個鍵-值對),就是把(key-value)作為乙個整體一對一對地存放到set集合當中的。

一. keyset()方式。

mapmap = new hashmap();

map.put("01", "zhangsan");

map.put("02", "lisi");

map.put("03", "wangwu");

setkeyset = map.keyset();//先獲取map集合的所有鍵的set集合

iteratorit = keyset.iterator();//有了set集合,就可以獲取其迭代器。

while(it.hasnext())

二. entryset()方式:

mapmap = new hashmap();

map.put("01", "zhangsan");

map.put("02", "lisi");

map.put("03", "wangwu");

//通過entryset()方法將map集合中的對映關係取出(這個關係就是map.entry型別)

set> entryset = map.entryset();

//將關係集合entryset進行迭代,存放到迭代器中                

iterator> it2 = entryset.iterator();

while(it2.hasnext())

雖然使用keyset及entryset來進行遍歷能取得相同的結果

但兩者的遍歷速度是有差別的

keyset():迭代後只能通過get()取value

entryset():迭代後可以e.getkey(),e.getvalue()取key和value。返回的是entry介面 

說明:keyset()的速度比entryset()慢了很多,也就是keyset方式遍歷map的效能不如entryset效能好

兩種Map遍歷方式

1 使用 jdk1.4中hashmap entryset 遍歷 存放key value鍵值對 maptempmap new hashmap tempmap.put a 1 tempmap.put b 2 tempmap.put c 3 iterator it tempmap.entryset ite...

兩種Map遍歷方式

map集合遍歷 1 使用 jdk1.4中hashmap entryset 遍歷 存放key value鍵值對 maptempmap new hashmap tempmap.put a 1 tempmap.put b 2 tempmap.put c 3 iterator it tempmap.entr...

雙列集合Map的兩種遍歷方式

通過元素中的鍵,獲取鍵所對應的值 分析步驟 獲取map中所有的鍵,由於鍵是唯一的,所以返回乙個set集合儲存所有的鍵。遍歷鍵的set集合,得到每乙個鍵。根據鍵,獲取鍵所對應的值。演示 mapmap new hashmap 往集合中新增鍵值對 map.put 海賊王 蒙奇d路飛 map.put 火影忍...