一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Java讀取Map的兩種方法與對比

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

2020-07-05 13:43bladestone JAVA教程

相信大家都知道在Java中Map的使用非常頻繁,我們經常會需要對Map進行遍歷和讀取,那么下面這篇文章將展示兩種遍歷的方法以及簡要分析。有需要的可以參考借鑒,下面來一起看看吧。

前言

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

一、 遍歷Map方法A

?
1
2
3
4
5
6
7
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

?
1
2
3
4
5
6
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中讀取信息。

四、性能測試

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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");
 }
}

測試結果:

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

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

五、總結

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

原文鏈接:http://blog.csdn.net/blueheart20/article/details/45173621

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本免费一区二区三区a区 日本免费三片在线观看 | 任你操视频在线观看 | fuqer老师 | 亚洲乱码尤物193yw在线播放 | 91精品国产高清久久久久久91 | 亚洲欧美一区二区三区在饯 | 俺去啦最新 | 555www成人网 | 免费视屏 | 国产一区二区三区久久精品 | 97影院3 | 91香蕉视频网址 | 国产成人精品免费视频大全五级 | 十六一下岁女子毛片免费 | 甜蜜调教| 欧美milk大超乳 | 男人插曲女人下面 | 九二淫黄大片看片 | 日韩基地1024首页 | 涩涩屋在线观看 | yw在线观看成人免费 | 免费一级欧美片在线观免看 | wwwav在线 | 男人操女人免费视频 | 大象传媒1234区| 久久理论片迅播影院一级 | 精品国产福利片在线观看 | 久久噜国产精品拍拍拍拍 | 成人aaaa| 国产麻豆精品入口在线观看 | 国产高清在线视频一区二区三区 | 亚洲无限 | 青青青在线观看国产精品 | 日本男男gayxxxxx免费 | 秋霞网毛片| 国产精品成 | 四虎最新紧急更新地址 | 欧洲一级黑寡妇 | 欧美日韩国产中文字幕 | h网站国产| 国产成人综合网亚洲欧美在线 |