JAVA Map的四种遍历比较

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

/** * 结论: * 第一种和第二种遍历性能相似,在既要key又要value的情况下可以用其中之一 * 第三种需要根据key用get方法取value,相当于多一次遍历,性能差一些,但如果仅需要key,用这种遍历方式也可以 * 第四种只是缓存了entrySet,然而entrySet()方法是单例模式,已经做了缓存 */
public class hashmapCompare {

    public void test() {
        Map<String, String> map = new HashMap<String, String>();

        //第一种,直接遍历所有条目
        for (Map.Entry<String, String> entry : map.entrySet()) {
            entry.getKey();
            entry.getValue();
        }

        //第二种,利用迭代器遍历
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            entry.getKey();
            entry.getValue();
        }

        //第三种,遍历所有key,之后再取value
        for (String key : map.keySet()) {
            map.get(key);
        }

        //缓存entrySet
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            entry.getKey();
            entry.getValue();
        }
    }
}

转载自:http://www.trinea.cn/android/hashmap-loop-performance/

    原文作者:NicoVon
    原文地址: https://blog.csdn.net/ray0354315/article/details/61417162
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞