JAVA 两种方法读取Map方法的性能简单对比

释放双眼,带上耳机,听听看~!

在JAVA开发中,使用Map还是很频繁的,对此我们都需要对Map进行遍历和读取,下面我们使用Iterator来进行简单的比较。

本文目的很简单,并不是什么专业性的测试,只是举个小例子比较下,做为笔记存储

测试环境

Map当中各自有100000条数据

测试代码

package com.gosonic.scm.web;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * JAVA 两种方法读取Map方法的性能简单对比
 * @date 2017-07-13
 * @author xiaozhuang
 * @url zhiku8.com
 */
public class MapTest {
	private static Map<Integer,String> initMap = new HashMap<Integer, String>();

	public static void initMapData(){
		for (int i = 0; i < 100000; i++) {
			initMap.put(i,"test"+i);
		}
	}

	public static void testMapA(){
		Iterator<Map.Entry<Integer, String>> iterator = initMap.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("MapA总执行耗时:" + (System.currentTimeMillis()-startTime));
	}

	public static void testMapB() {
		Iterator<Integer> iterator = initMap.keySet().iterator();
		long startTime = System.currentTimeMillis();
		while (iterator.hasNext()) {
			int key = iterator.next();
			String val = initMap.get(key);
		}

		System.out.println("MapB总执行耗时:" + (System.currentTimeMillis()-startTime));
	}

	public static void main(String[] args) {
		initMapData(); // 初始化Map数据
		testMapA(); // 执行A
		testMapB(); // 执行B
	}

}

执行结果

MapA总执行耗时:4

MapB总执行耗时:6

人已赞赏
后端开发

JAVA Queue(队列)的简单用法

2017-6-26 16:28:33

后端开发

Android EditText 获取失去焦点监听事件

2017-7-22 11:15:54

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索