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

JAVA遍歷map的幾種實現(xiàn)方法代碼

 更新時間:2014年01月08日 16:33:12   作者:  
這篇文章主要介紹了JAVA遍歷map的幾種實現(xiàn)方法,有需要的朋友可以參考一下

復(fù)制代碼 代碼如下:

public static void main(String args[]) {
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("a", "A");
  map.put("b", "B");
  map.put("c", "C");
  // keySet遍歷
  Iterator<String> iterator = map.keySet().iterator();
  while (iterator.hasNext()) {
    String key = iterator.next();
    String value = (String) map.get(key);
    System.out.println(value);
  }
  for (String key : map.keySet()) {
    String value = (String) map.get(key);
    System.out.println(value);
  }
  // entrySet遍歷
  Iterator<Entry<String, Object>> iterator1 = map.entrySet().iterator();
  while (iterator1.hasNext()) {
    String value = (String) iterator1.next().getValue();
    System.out.println(value);
  }

  for (Entry<String, Object> entry : map.entrySet()) {
    String value = (String) entry.getValue();
    System.out.println(value);
  }
  //
  for (Object str : map.values()) {
    System.out.println(str);
  }
}

關(guān)于效率問題:

如果你使用HashMap

同時遍歷key和value時,keySet與entrySet方法的性能差異取決于key的具體情況,如復(fù)雜度(復(fù)雜對象)、離散度、沖突率等。換言之,取決于HashMap查找value的開銷。entrySet一次性取出所有key和value的操作是有性能開銷的,當(dāng)這個損失小于HashMap查找value的開銷時,entrySet的性能優(yōu)勢就會體現(xiàn)出來。例如上述對比測試中,當(dāng)key是最簡單的數(shù)值字符串時,keySet可能反而會更高效,耗時比entrySet少10%??傮w來說還是推薦使用entrySet。因為當(dāng)key很簡單時,其性能或許會略低于keySet,但卻是可控的;而隨著key的復(fù)雜化,entrySet的優(yōu)勢將會明顯體現(xiàn)出來。當(dāng)然,我們可以根據(jù)實際情況進行選擇
只遍歷key時,keySet方法更為合適,因為entrySet將無用的value也給取出來了,浪費了性能和空間。在上述測試結(jié)果中,keySet比entrySet方法耗時少23%。
只遍歷value時,使用vlaues方法是最佳選擇,entrySet會略好于keySet方法。

如果你使用TreeMap

同時遍歷key和value時,與HashMap不同,entrySet的性能遠(yuǎn)遠(yuǎn)高于keySet。這是由TreeMap的查詢效率決定的,也就是說,TreeMap查找value的開銷較大,明顯高于entrySet一次性取出所有key和value的開銷。因此,遍歷TreeMap時強烈推薦使用entrySet方法。

相關(guān)文章

  • 使用 Java 開發(fā) Gradle 插件的步驟

    使用 Java 開發(fā) Gradle 插件的步驟

    這篇文章主要介紹了使用 Java 開發(fā) Gradle 插件的步驟,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 詳解擴展tk.mybatis的批量更新的功能

    詳解擴展tk.mybatis的批量更新的功能

    tk.mybatis沒有帶批量更新的功能,批量更新卻是經(jīng)常使用的,所以本文介紹了一下tk.mybatis的批量更新功能,感興趣的可以了解一下
    2021-12-12
  • java Tapestry4.1.2入門說明教程

    java Tapestry4.1.2入門說明教程

    不必關(guān)心鏈接!不必關(guān)心請求(http request)到了哪里!不必關(guān)心響應(yīng)(http response)要轉(zhuǎn)向哪里!Tapestry構(gòu)建于底層的request-resonse模式,基于Servlet技術(shù),抽象出面向組件開發(fā)的模型。Tapestry關(guān)心的是:頁面、組件、事件、對象、方法、屬性!
    2008-11-11
  • 在Mac上安裝JDK21的詳細(xì)流程

    在Mac上安裝JDK21的詳細(xì)流程

    在macOS上安裝JDK(Java Development Kit)21是相對簡單的過程,這篇文章主要給大家介紹了關(guān)于在Mac上安裝JDK21的詳細(xì)流程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • java中字符串替換常用的4種方法

    java中字符串替換常用的4種方法

    在Java中String類提供了許多方便的方法來處理字符串,下面這篇文章主要給大家介紹了關(guān)于java中字符串替換常用的4種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • MAVEN3.9.x中301問題及解決方法

    MAVEN3.9.x中301問題及解決方法

    本文主要介紹了使用MAVEN3.9.x中301問題及解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Java Date類常用示例_動力節(jié)點Java學(xué)院整理

    Java Date類常用示例_動力節(jié)點Java學(xué)院整理

    在JDK1.0中,Date類是唯一的一個代表時間的類,但是由于Date類不便于實現(xiàn)國際化,所以從JDK1.1版本開始,推薦使用Calendar類進行時間和日期處理。這里簡單介紹一下Date類的使用,需要的朋友可以參考下
    2017-05-05
  • Spring MVC 學(xué)習(xí) 之 - URL參數(shù)傳遞詳解

    Spring MVC 學(xué)習(xí) 之 - URL參數(shù)傳遞詳解

    本篇文章主要介紹了SpringMVC-URL參數(shù)傳遞,在學(xué)習(xí) Spring Mvc 過程中,有必要來先了解幾個關(guān)鍵參數(shù),有興趣的可以了解一下。
    2017-01-01
  • SpringBoot?配置文件總結(jié)

    SpringBoot?配置文件總結(jié)

    SpringBoot中提供一個全局的配置文件:application.properties,這個配置文件的作用就是,允許我們通過這個配置文件去修改Spring?Boot自動配置的默認(rèn)值,本文詳細(xì)總結(jié)了SpringBoot配置文件,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考下
    2023-05-05
  • Java實現(xiàn)二維碼功能的實例代碼

    Java實現(xiàn)二維碼功能的實例代碼

    今天這篇文章,主要是利用Java實現(xiàn)二維碼功能,本文思路清晰,需要的朋友參考下
    2017-02-02

最新評論

荔浦县| 北辰区| 普兰店市| 松原市| 尉犁县| 绥化市| 黔东| 自贡市| 潼关县| 新和县| 南宫市| 古浪县| 宜州市| 南召县| 五指山市| 陆川县| 泰和县| 铁岭县| 横山县| 镇巴县| 久治县| 水城县| 双柏县| 灌南县| 临澧县| 大同县| 龙州县| 保康县| 甘谷县| 葵青区| 遂昌县| 桂东县| 湘潭市| 蒙城县| 万山特区| 淳化县| 通化县| 任丘市| 习水县| 濮阳市| 柳河县|