JAVA ·

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中两个Set比较找出交集、差集、并集

点击查看 当做到某些功能的时候,使用Set能够快速方便地将需要的类型以集合类型保存在一个变量中,Set是最简单的一种集合,集合中的对象不按特定的方式排序,并且没有重复对象。 import j···

参与评论