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

使用多種方式實(shí)現(xiàn)遍歷HashMap的方法

 更新時(shí)間:2016年05月20日 16:02:30   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇使用多種方式實(shí)現(xiàn)遍歷HashMap的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

今天講解的主要是使用多種方式來(lái)實(shí)現(xiàn)遍歷HashMap取出Key和value,首先在java中如果想讓一個(gè)集合能夠用for增強(qiáng)來(lái)實(shí)現(xiàn)迭代,那么此接口或類(lèi)必須實(shí)現(xiàn)Iterable接口,那么Iterable究竟是如何來(lái)實(shí)現(xiàn)迭代的,在這里將不做講解,下面主要講解一下遍歷過(guò)程。

//定義一個(gè)泛型集合
Map<String, String> map = new HashMap<String, String>();
//通過(guò)Map的put方法向集合中添加數(shù)據(jù)
    map.put("001", "劉備");
    map.put("002", "曹操");
    map.put("003", "孫權(quán)");

方式一:使用該Map接口的KeySet方法來(lái)實(shí)現(xiàn)

問(wèn)題:我們都知道Map接口并沒(méi)有實(shí)現(xiàn)Iterable接口,為什么能用他的KetSet方法就能實(shí)現(xiàn)迭代呢?

解析:因?yàn)镵eySet方法返回此映射中包含的鍵的 Set 視圖,這個(gè)方法竟然能返回一個(gè)Set試圖,也就說(shuō)他的返回值類(lèi)型是一個(gè)Set接口,我們可以通過(guò)API文檔看到Set接口他是實(shí)現(xiàn)了Iterable接口,所以能實(shí)現(xiàn)迭代。

//調(diào)用KeySet方法放回一個(gè)Set接口類(lèi)型
    Set<String> set = map.keySet();
    //使用for增強(qiáng)來(lái)取出key和value
    for (String item : set) {
      System.out.println("Key是:" + item + ";Value值是:" + map.get(item));
    }

方式二:使用Map接口的Values方法實(shí)現(xiàn)(for增強(qiáng))

同理:調(diào)用Map接口的values方法他放回一個(gè)Collection試圖,Collection接口他又實(shí)現(xiàn)了Iterable接口,所以能夠迭代。

Collection<String> con = map.values();
    for (String item : con) {
      System.out.println("Value值是:" + item);
    }

方式三:使用Map接口的entrySet方法實(shí)現(xiàn)(for增強(qiáng))

entrySet:entrySet()的返回值也是返回一個(gè)Set集合,此集合的類(lèi)型為Map.Entry,Map.Entry是Map聲明的一個(gè)內(nèi)部接口,此接口為泛型,定義為Entry<K,V>。它表示Map中的一個(gè)實(shí)體(一個(gè)key-value對(duì))。

Set<Entry<String, String>> setentry = map.entrySet();
    for (Entry<String, String> item : setentry) {
      System.out.println("Key是:" + item.getKey() + ";Value值是:"
          + item.getValue());
    }

方式四:使用Map接口的keySet().Iterable()(while循環(huán))

Iterable():返回在此 set 中的元素上進(jìn)行迭代的迭代器。返回的元素沒(méi)有特定的順序(除非此 set 是某個(gè)提供順序保證的類(lèi)的實(shí)例)。返回值類(lèi)型Iterator<E>

Iterator<String> it = map.keySet().iterator();
//如果仍有元素可以迭代,則返回 true。    while (it.hasNext()) {     //獲取Key值
   String key = it.next();   System.out.println("Key是:" + key + ";Value值是:" + map.get(key));
   }

方式五:使用Map接口的value.Iterable()(while循環(huán))

Iterator<String> it1 = map.values().iterator();
    while (it1.hasNext()) {
      String value = it1.next();
      System.out.println("Value值是:" + value);
    }

方式六:使用Map接口的entrySet().Iterable()(while循環(huán))

Iterator<Entry<String, String>> it2 = map.entrySet().iterator();
    while (it2.hasNext()) {
      Entry<String,String> entry=it2.next();
      System.out.println("Key是:" + entry.getKey() + ";Value值是:" + entry.getValue());
    }

以上這篇使用多種方式實(shí)現(xiàn)遍歷HashMap的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)反向代理的示例代碼

    SpringBoot實(shí)現(xiàn)反向代理的示例代碼

    本文主要介紹了SpringBoot實(shí)現(xiàn)反向代理的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Redisson可重入鎖解鎖邏輯詳細(xì)講解

    Redisson可重入鎖解鎖邏輯詳細(xì)講解

    Redisson開(kāi)源框架是一個(gè)Redis的分布式鎖的現(xiàn)成實(shí)現(xiàn)方案,是Redis的java實(shí)現(xiàn)的客戶(hù)端。通過(guò)Netty支持非阻塞I/O。Redisson實(shí)現(xiàn)了分布式鎖的自動(dòng)續(xù)期機(jī)制、鎖的互斥自等待機(jī)制、鎖的可重入加鎖與釋放鎖的機(jī)制
    2023-02-02
  • 詳解Java利用同步塊synchronized()保證并發(fā)安全

    詳解Java利用同步塊synchronized()保證并發(fā)安全

    這篇文章主要介紹了Java利用同步塊synchronized()保證并發(fā)安全,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • springBoot動(dòng)態(tài)加載jar及如何將類(lèi)注冊(cè)到IOC

    springBoot動(dòng)態(tài)加載jar及如何將類(lèi)注冊(cè)到IOC

    在SpringBoot項(xiàng)目中動(dòng)態(tài)加載jar文件并將其類(lèi)注冊(cè)到IOC容器是一種高級(jí)應(yīng)用方式,,這種方法為SpringBoot項(xiàng)目提供了更靈活的擴(kuò)展能力,使得項(xiàng)目可以在不修改原有代碼的基礎(chǔ)上增加新的功能模塊,感興趣的朋友一起看看吧
    2024-11-11
  • Java多線(xiàn)程ForkJoinPool實(shí)例詳解

    Java多線(xiàn)程ForkJoinPool實(shí)例詳解

    這篇文章主要介紹了Java多線(xiàn)程ForkJoinPool實(shí)例詳解,涉及forkjoin框架的相關(guān)內(nèi)容,需要的朋友可以參考下。
    2017-09-09
  • Spring Eureka 未授權(quán)訪問(wèn)漏洞修復(fù)問(wèn)題小結(jié)

    Spring Eureka 未授權(quán)訪問(wèn)漏洞修復(fù)問(wèn)題小結(jié)

    項(xiàng)目組使用的 Spring Boot 比較老,是 1.5.4.RELEASE ,最近被檢測(cè)出 Spring Eureka 未授權(quán)訪問(wèn)漏洞,這篇文章主要介紹了Spring Eureka 未授權(quán)訪問(wèn)漏洞修復(fù)問(wèn)題小結(jié),需要的朋友可以參考下
    2024-04-04
  • maven pom中內(nèi)置變量及引用的實(shí)現(xiàn)

    maven pom中內(nèi)置變量及引用的實(shí)現(xiàn)

    maven其實(shí)有很多內(nèi)置變量供開(kāi)發(fā)著在開(kāi)發(fā)中使用,本文主要介紹了maven pom中內(nèi)置變量及引用的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Spring中的@Transactional的工作原理

    Spring中的@Transactional的工作原理

    這篇文章主要介紹了Spring中的@Transactional的工作原理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • 學(xué)習(xí)Java之異常到底該如何捕獲和處理

    學(xué)習(xí)Java之異常到底該如何捕獲和處理

    我們知道,Java的異常處理是通過(guò)5個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn)的,即try、catch、throw、throws和finally,try?catch語(yǔ)句用于捕獲并處理異常,但具體該怎么捕獲異常,怎么拋出異常,什么時(shí)候拋,什么時(shí)候捕,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2023-08-08
  • SpringMVC對(duì)日期類(lèi)型的轉(zhuǎn)換示例

    SpringMVC對(duì)日期類(lèi)型的轉(zhuǎn)換示例

    本篇文章主要介紹了SpringMVC對(duì)日期類(lèi)型的轉(zhuǎn)換示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論

巴里| 阜新市| 安宁市| 广元市| 福贡县| 梅河口市| 莎车县| 叶城县| 华亭县| 洛隆县| 甘谷县| 赤城县| 尖扎县| 巴塘县| 海阳市| 始兴县| 大竹县| 永定县| 兴城市| 神木县| 通城县| 临桂县| 岳阳县| 绍兴县| 沙湾县| 嘉黎县| 临江市| 板桥市| 肥城市| 西丰县| 雷州市| 太保市| 嘉祥县| 思南县| 伊通| 孟州市| 娄烦县| 鄄城县| 静宁县| 西城区| 双鸭山市|