Map中keySet和entrySet的區別

2022-07-24 04:30:18 字數 1694 閱讀 2603

在map集合中

values():方法是獲取集合中的所有的值----沒有鍵,沒有對應關係,

keyset():

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

entryset():

set> entryset() //返回此對映中包含的對映關係的 set 檢視。 map.entry表示對映關係。entryset():迭代後可以e.getkey(),e.getvalue()取key和value。返回的是entry介面 。

下面通過例子看看:

mapmap = new hashmap();

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()取key

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

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

為了提高效能,以後多考慮用entryset()方式來進行遍歷。

Map中entrySet 和keySet 比較

keyset是key的集合,set裡面的型別即key的型別 entryset是 key value 對的集合,set裡面的型別是map.entry keyset 的速度比entryset 慢了很多,使用entryset則必須將map物件轉換為map.entry,keyset則不需要。也就是keyse...

java中Map集合取值方法KeySet

返回值型別set方法是 keyset 返回此對映中包含的鍵的 set 集合 將map中所有的鍵存入到set集合,因為set具備迭代器,所以可以用迭代方式取出所有的鍵 再根據get 方法 獲取每乙個鍵對應的值 舉例 1.從命令列讀入乙個隊名,輸出該隊獲得冠軍是哪一年 以下面五屆資料作為基礎資料 如果該...

Map集合遍歷keySet 鍵找值方式

keyset map集合中的第一種遍歷方式 通過鍵找值得方式 set keyset 返回此對映中包含的鍵的set檢視 實現步驟 map map newhashmap map.put 趙麗穎 168 map.put 林志玲 178 map.put 楊穎 165 使用map集合中的方法keyset 把m...