亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁/技術(shù)文章
文章詳情頁

Java中Map的entrySet()使用說明

瀏覽:3日期:2022-08-23 18:50:45

由于Map中存放的元素均為鍵值對,故每一個鍵值對必然存在一個映射關(guān)系。

Map中采用Entry內(nèi)部類來表示一個映射項,映射項包含Key和Value

Map.Entry里面包含getKey()和getValue()方法

Set<Entry<T,V>> entrySet()

該方法返回值就是這個map中各個鍵值對映射關(guān)系的集合。

可使用它對map進(jìn)行遍歷。

Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator(); while(it.hasNext()) { Map.Entry<Integer,Integer> entry=it.next(); int key=entry.getKey(); int value=entry.getValue(); System.out.println(key+' '+value); }

補(bǔ)充知識:Map對象中的keyset()、entryset()和Map.Entry

一 Map對象中的keySet()和entrySet()

1. keySet()

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 先獲取map集合的所有鍵的set集合,即為map中所有key值得集合 Set<String> keySet = map.keySet(); // 有了set集合,就可以獲取其迭代器 Iterator<String> it = keySet.iterator(); while (it.hasNext()) { String key = it.next(); // 有了鍵可以通過map集合的get方法獲取其對應(yīng)的值 String value = map.get(key); // 獲得key和value值 System.out.println('key:' + key + '-->value:' + value); }}

keySet()返回的是map對象的key值的set集合

2. entrySet()

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 通過entrySet()方法將map集合中的映射關(guān)系取出(這個關(guān)系就是Map.Entry類型) Set<Map.Entry<String, String>> entrySet = map.entrySet(); // 將關(guān)系集合entryset進(jìn)行迭代,存放到迭代器中 Iterator<Map.Entry<String, String>> it2 = entrySet.iterator(); while (it2.hasNext()) { // 獲取Map.Entry關(guān)系對象me Map.Entry<String, String> me = it2.next(); // 通過關(guān)系對像獲取key String key2 = me.getKey(); // 通過關(guān)系對像獲取value String value2 = me.getValue(); System.out.println('key:' + key2 + '-->value:' + value2); } }

entrySet()返回映射所包含的映射關(guān)系的Set集合(一個關(guān)系就是一個鍵-值對),就是把(key-value)作為一個整體一對一對地存放到Set集合當(dāng)中的。

3.總結(jié)

雖然使用keyset及entryset來進(jìn)行遍歷能取得相同的結(jié)果,但兩者的遍歷速度是有差別的。

keySet():迭代后只能通過get()取key;再根據(jù)key值取value。

entrySet():迭代后可以e.getKey(),e.getValue()取key和value。

同時,keySet()的速度比entrySet()慢了很多,也就是keySet方式遍歷Map的性能不如entrySet性能好

為了提高性能,以后多考慮用entrySet()方式來進(jìn)行遍歷。

二 Map.Entry

Map是java中的接口,Map.Entry是Map的一個內(nèi)部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一個Set集合,此集合的類型為Map.Entry。

Map.Entry是Map聲明的一個內(nèi)部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個實體(一個key-value對)。接口中有g(shù)etKey(),getValue方法。

遍歷Map對象的常用方法除了以上兩種外,還有一種是單純的遍歷value值。Map有一個values方法,返回的是value的Collection集合。通過遍歷Collection也可以遍歷value。

public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put('01', 'qwe'); map.put('02', 'asd'); map.put('03', 'zxc'); // 創(chuàng)建一個Collection集合,存放map的value值 Collection<String> c = map.values(); // 通過遍歷Collection也可以遍歷value Iterator<String> it = c.iterator(); // 該方法只能遍歷value值,不能遍歷key值 while (it.hasNext()) { Object value = it.next(); System.out.println('value:' + value); } }

在遍歷Map對象時,先從Map對象中取出key值之后,還必須每次重復(fù)返回到Map中取得相對的值,這是很繁瑣和費時的。

幸運(yùn)的是,Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry實例化后的對象集。 接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法。

Set entries = map.entrySet( ); if(entries != null) { Iterator iterator = entries.iterator( ); while(iterator.hasNext( )) { Map.Entry entry =iterator.next( ); Object key = entry.getKey( ); Object value = entry.getValue(); //}}

盡管增加了一行代碼,我們卻省略了許多對Map不必要的“get”調(diào)用。同時,提供給開發(fā)人員一個同時保持了關(guān)鍵字和其對應(yīng)的值的類。Map.Entry同時也提供了一個setValue()方法,程序員可以使用它修改map里面的值。

以上這篇Java中Map的entrySet()使用說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 2020久久精品永久免费 | 一级毛片直接看 | 国产精品黄网站免费观看 | 一级成人黄色片 | 亚洲国产精品综合久久久 | 一级做a爱过程免费视频日本 | 免费看一片| 99久久婷婷国产综合精品hsex | 天天综合色天天桴色 | 欧美大穴 | 国产在线观看精品香蕉v区 国产在线每日更新 | 精品国产欧美一区二区最新 | 精品欧美一区二区三区免费观看 | 黄色录像日本 | 男人粗大一出一进女人下面视频 | 免费观看性行为的视频网站 | 精品国产香蕉伊思人在线 | 免费看一毛一级毛片视频 | 免费看av的网址 | 九九精品视频一区在线 | 麻豆影视视频高清在线观看 | 欧美日韩性视频在线 | 在线观看一区二区三区视频 | 色影院在线 | 日本亚洲乱码中文字幕影院 | 成人最新午夜免费视频 | japanese无码中文字幕 | 日本特级黄色 | 亚洲精品午夜一区二区在线观看 | 美女高清视频喷水 | 两个人看的www视频中文字幕 | 黄+在线播放 | 国产精品拍拍拍福利在线观看 | 黄色免费小网站 | 伊人色综合久久天天网蜜月 | 免费黄色大片视频 | 日本一本色道免费视频 | 精品国产一区二区在线观看 | 日韩乱淫 | 欧美一区二区三区久久久人妖 | 久久精品国产99国产精品澳门 |