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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品中文騷妇女内射 | 亚洲国产精品久久久久 | 精品国产欧美精品v | 日本激情小说 | 免费网站视频 | 朝鲜女人free性xxe | 亚洲免费网站在线观看 | 欧美干b视频 | 桃色综合网 | 日韩在线二区全免费 | 青青色在线 | 精品欧美小视频在线观看 | 色图18p | 久久这里只有精品无码3D | 日本男女视频 | 久久99国产精品二区不卡 | 免费成年网 | 青青在线视频观看 | 亚洲精品国产成人99久久 | 校草让我脱了内裤给全班看 | 国产高清在线不卡 | 日本人和黑人一级纶理片 | 欧美成人三级伦在线观看 | 国产在线乱子伦一区二区 | 美女张开腿让男人桶的 视频 | 欧美在线视频7777kkkk | 俄罗斯年轻男同gay69 | 欧美成人aa | 国产日韩欧美在线一二三四 | 亚洲第一页综合 | 91tv在线观看 | 99热久久这里只有精品6国产网 | 日本色吧| 国产成人精品系列在线观看 | 羲义嫁密着中出交尾gvg794 | 精品免费视在线观看 | 2021最新国产成人精品视频 | 午夜影院一区二区三区 | 成人中文字幕在线观看 | 欧美一级高清免费a | luan小说|