JAVA 读取Map方法的性能对比

发布时间:2018-05-09作者:laosun阅读(2243)

JAVA

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


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


    测试环境

    Map当中各自有100000条数据

    /**
     * JAVA 两种方法读取Map方法的性能简单对比
     */
    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


0 +1

版权声明

 Java  源码

 请文明留言

0 条评论