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

Java讀取Map的兩種方法與對比

 更新時間:2016年11月17日 08:36:45   作者:bladestone  
相信大家都知道在Java中Map的使用非常頻繁,我們經(jīng)常會需要對Map進行遍歷和讀取,那么下面這篇文章將展示兩種遍歷的方法以及簡要分析。有需要的可以參考借鑒,下面來一起看看吧。

前言

在java中遍歷Map有不少的方法。這篇文章我們就來看一下Java讀取Map的兩種方法以及這兩種方法的對比。

一、 遍歷Map方法A

Map map = new HashMap(); 
Iterator iter = map.entrySet().iterator(); 
while (iter.hasNext()) { 
 Map.Entry entry = (Map.Entry) iter.next(); 
 Object key = entry.getKey(); 
 Object val = entry.getValue(); 
} 

二、遍歷Map方法B

Map map = new HashMap(); 
Iterator iter = map.keySet().iterator(); 
while (iter.hasNext()) { 
 Object key = iter.next(); 
  Object val = map.get(key); 
} 

三、分析遍歷方法

   方法A:  在遍歷中一次讀取Map.Entry,然后直接獲取的值。

   方法B:   基于keySet則是,先遍歷,然后再從Map中讀取信息。

四、性能測試

import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map; 
 
import org.junit.BeforeClass; 
import org.junit.Test; 
 
public class MapLoopA { 
 private static Map<Integer, String> infos = new HashMap<Integer, String>(); 
 
 @BeforeClass 
 public static void setUp() { 
 for (int i=0; i<1000000; i++) { 
  infos.put(i, "test information" + i); 
 } 
 System.out.println("setUp is done."); 
 } 
 
 @Test 
 public void testMapLoopA() { 
 Iterator<Map.Entry<Integer, String>> iterator = infos.entrySet().iterator(); 
 long startTime = System.currentTimeMillis(); 
 while (iterator.hasNext()) { 
  Map.Entry<Integer, String> entry = iterator.next(); 
  int key = entry.getKey(); 
  String val = entry.getValue(); 
 } 
  
 System.out.println("A solution takes in looping Map with 1000000 entries:" 
   + (System.currentTimeMillis()-startTime) + " milli seconds"); 
 } 
 
 @Test 
 public void testMapLoopB() { 
 Iterator<Integer> iterator = infos.keySet().iterator(); 
 long startTime = System.currentTimeMillis(); 
 while (iterator.hasNext()) {  
  int key = iterator.next(); 
  String val = infos.get(key); 
 } 
  
 System.out.println("B solution takes in looping Map with 1000000 entries:" + 
   (System.currentTimeMillis()-startTime) + " milli seconds"); 
 } 
} 

測試結(jié)果:

 

由此可見,在Map中存放1000000個數(shù)據(jù),并在此數(shù)據(jù)集合中,進行遍歷。效率上差異將近1倍的性能差異。

五、總結(jié)

好了,以上就是這篇文章的全部內(nèi)容了,可以看車方法A的效率總體要高一些。一般推薦大家使用方法A。希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助。

相關(guān)文章

  • java實現(xiàn)識別二維碼圖片功能

    java實現(xiàn)識別二維碼圖片功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)識別二維碼圖片功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java使用JNDI連接數(shù)據(jù)庫的實現(xiàn)方法

    Java使用JNDI連接數(shù)據(jù)庫的實現(xiàn)方法

    本文主要介紹了Java使用JNDI連接數(shù)據(jù)庫的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • SpringBoot對數(shù)據(jù)訪問層進行單元測試的方法詳解

    SpringBoot對數(shù)據(jù)訪問層進行單元測試的方法詳解

    我們公司作為一個面向銀行、金融機構(gòu)的TO B類企業(yè),頻繁遇到各個甲方爸爸提出的國產(chǎn)化數(shù)據(jù)庫的改造需求,包括OceanBase, TiDB,geldenDB等等,本文就介紹一種快高效、可復(fù)用的解決方案——對數(shù)據(jù)訪問層做單元測試,需要的朋友可以參考下
    2023-08-08
  • Java interceptor攔截器的方法

    Java interceptor攔截器的方法

    java里的攔截器是動態(tài)攔截Action調(diào)用的對象,它提供了一種機制可使開發(fā)者在一個Action執(zhí)行的先后執(zhí)行一段代碼,也能夠在一個Action,接下來通過本文給大家介紹Java interceptor攔截器的方法,感興趣的朋友一起看看吧
    2022-01-01
  • JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式

    JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式

    這篇文章主要介紹了JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • springboot配置redis過程詳解

    springboot配置redis過程詳解

    這篇文章主要介紹了springboot配置redis過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • spring boot的攔截器簡單使用示例代碼

    spring boot的攔截器簡單使用示例代碼

    這篇文章主要介紹了spring boot的攔截器簡單使用實例代碼,需要的的朋友參考下吧
    2017-04-04
  • MyBatis映射器mapper快速入門教程

    MyBatis映射器mapper快速入門教程

    使用mapper接口的方式,不用寫接口實現(xiàn)類,直接完成數(shù)據(jù)庫操作,簡單方便。使用mapper接口,采用的是面向接口編程的思想,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • Jlabel實現(xiàn)內(nèi)容自動換行簡單實例

    Jlabel實現(xiàn)內(nèi)容自動換行簡單實例

    這篇文章主要介紹了Jlabel實現(xiàn)內(nèi)容自動換行簡單實例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 基于Mybatis-plus實現(xiàn)多租戶架構(gòu)的全過程

    基于Mybatis-plus實現(xiàn)多租戶架構(gòu)的全過程

    多租戶是一種軟件架構(gòu)技術(shù),在多用戶的環(huán)境下,共有同一套系統(tǒng),并且要注意數(shù)據(jù)之間的隔離性,下面這篇文章主要給大家介紹了關(guān)于基于Mybatis-plus實現(xiàn)多租戶架構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評論

独山县| 汉沽区| 长宁区| 长白| 本溪| 桂林市| 米脂县| 双鸭山市| 余姚市| 紫阳县| 固安县| 吴江市| 镇康县| 达拉特旗| 田林县| 东丰县| 江西省| 淅川县| 南宁市| 土默特左旗| 平安县| 大洼县| 隆德县| 炉霍县| 康定县| 济南市| 中方县| 辽阳县| 蛟河市| 修文县| 阿拉善左旗| 九台市| 高州市| 鹤壁市| 余庆县| 林州市| 洛浦县| 隆德县| 彰武县| 扬州市| 喀什市|