最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Map的entrySet()使用說明

 更新時(shí)間:2020年09月25日 09:42:42   作者:努力學(xué)編程的小好  
這篇文章主要介紹了Java中Map的entrySet()使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

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

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

該方法返回值就是這個(gè)map中各個(gè)鍵值對映射關(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)系取出(這個(gè)關(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集合(一個(gè)關(guān)系就是一個(gè)鍵-值對),就是把(key-value)作為一個(gè)整體一對一對地存放到Set集合當(dāng)中的。

3.總結(jié)

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

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

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

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

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

二 Map.Entry

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

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

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

遍歷Map對象的常用方法除了以上兩種外,還有一種是單純的遍歷value值。Map有一個(gè)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)建一個(gè)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對象時(shí),先從Map對象中取出key值之后,還必須每次重復(fù)返回到Map中取得相對的值,這是很繁瑣和費(fèi)時(shí)的。

幸運(yùn)的是,Map類提供了一個(gè)稱為entrySet()的方法,這個(gè)方法返回一個(gè)Map.Entry實(shí)例化后的對象集。 接著,Map.Entry類提供了一個(gè)getKey()方法和一個(gè)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)用。同時(shí),提供給開發(fā)人員一個(gè)同時(shí)保持了關(guān)鍵字和其對應(yīng)的值的類。Map.Entry同時(shí)也提供了一個(gè)setValue()方法,程序員可以使用它修改map里面的值。

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

相關(guān)文章

  • IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟

    IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟

    本文主要介紹了IDEA配置Gradle及Gradle安裝的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • springboot多模塊項(xiàng)目mvn打包遇到存在依賴但卻無法發(fā)現(xiàn)符號問題

    springboot多模塊項(xiàng)目mvn打包遇到存在依賴但卻無法發(fā)現(xiàn)符號問題

    在SpringBoot多模塊項(xiàng)目中,如果遇到依賴存在但無法發(fā)現(xiàn)符號的問題,常見原因可能是pom.xml配置問題,例如,如果某個(gè)模塊僅作為依賴而不是啟動(dòng)工程,不應(yīng)在其pom中配置spring-boot-maven-plugin插件,因?yàn)檫@將影響jar包的生成方式
    2024-09-09
  • Java線程池submit阻塞獲取結(jié)果的實(shí)現(xiàn)原理詳解

    Java線程池submit阻塞獲取結(jié)果的實(shí)現(xiàn)原理詳解

    Java線程池中提交任務(wù)運(yùn)行,通常使用execute()方法就足夠了。那如果想要實(shí)現(xiàn)在主線程中阻塞獲取線程池任務(wù)運(yùn)行的結(jié)果,該怎么辦呢?本文就來和大家一起討論討論
    2022-10-10
  • 淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    這篇文章主要介紹了淺談Java多線程的優(yōu)點(diǎn)及代碼示例,還是比較不錯(cuò)的,這里分享給大家,需要的朋友可以參考。
    2017-11-11
  • Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 通過實(shí)例解析synchronized和lock區(qū)別

    通過實(shí)例解析synchronized和lock區(qū)別

    這篇文章主要介紹了通過實(shí)例解析synchronized和lock區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • mybatis中的test語句失效處理方式

    mybatis中的test語句失效處理方式

    這篇文章主要介紹了mybatis中的test語句失效處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java實(shí)現(xiàn)循環(huán)體的過濾器的方法

    Java實(shí)現(xiàn)循環(huán)體的過濾器的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)循環(huán)體的過濾器的方法,需要的朋友可以參考下
    2014-02-02
  • Java中Cglib代理類重寫邏輯詳解

    Java中Cglib代理類重寫邏輯詳解

    這篇文章主要介紹了Java中Cglib代理類重寫邏輯詳解,代理類中只會維護(hù)NoOp這個(gè)回調(diào)屬性,并不會生成目標(biāo)類MyService中的noOp所對應(yīng)的方法,需要的朋友可以參考下
    2023-11-11
  • Java中的vector類使用示例小結(jié)

    Java中的vector類使用示例小結(jié)

    Vector與ArrayList的實(shí)現(xiàn)基本相似,同樣是基于動(dòng)態(tài)數(shù)組,同樣是需要擴(kuò)容,下面舉了三個(gè)簡短的例子來幫助大家理解vertor:
    2016-05-05

最新評論

万荣县| 象山县| 邹平县| 塔河县| 万州区| 瓮安县| 天峨县| 岚皋县| 霍城县| 丁青县| 醴陵市| 大连市| 西宁市| 临桂县| 衡阳县| 涿鹿县| 新巴尔虎左旗| 嵊州市| 峨山| 阿拉尔市| 固始县| 丹棱县| 建平县| 水城县| 瓦房店市| 绥阳县| 鸡西市| 濮阳市| 铜陵市| 清水县| 全椒县| 开封县| 福海县| 二手房| 河曲县| 兴隆县| 金门县| 江城| 鄯善县| 平遥县| 吉隆县|