zoukankan      html  css  js  c++  java
  • Map集合几种遍历方式的性能比较

    首先构造一个 HashMap 集合:

    1 HashMap<String,Object> map = new HashMap<>();
    2 map.put("A","1");
    3 map.put("B","2");
    4 map.put("C","3");

      ①、分别获取 key 集合和 value 集合。

     
    1 //1、分别获取key和value的集合
    2 for(String key : map.keySet()){
    3     System.out.println(key);
    4 }
    5 for(Object value : map.values()){
    6     System.out.println(value);
    7 }

      ②、获取 key 集合,然后遍历key集合,根据key分别得到相应value

    1 //2、获取key集合,然后遍历key,根据key得到 value
    2 Set<String> keySet = map.keySet();
    3 for(String str : keySet){
    4     System.out.println(str+"-"+map.get(str));
    5 }

      ③、得到 Entry 集合,然后遍历 Entry

    1 //3、得到 Entry 集合,然后遍历 Entry
    2 Set<Map.Entry<String,Object>> entrySet = map.entrySet();
    3 for(Map.Entry<String,Object> entry : entrySet){
    4     System.out.println(entry.getKey()+"-"+entry.getValue());
    5 }

      ④、迭代

    1 //4、迭代
    2 Iterator<Map.Entry<String,Object>> iterator = map.entrySet().iterator();
    3 while(iterator.hasNext()){
    4     Map.Entry<String,Object> mapEntry = iterator.next();
    5     System.out.println(mapEntry.getKey()+"-"+mapEntry.getValue());
    6 }

      

           基本上使用第三种方法是性能最好的,

      第一种遍历方法在我们只需要 key 集合或者只需要 value 集合时使用;

      第二种方法效率很低,不推荐使用;

      第四种方法效率也挺好,关键是在遍历的过程中我们可以对集合中的元素进行删除。

  • 相关阅读:
    使用require.context引入模块
    npm link的使用
    mysql 链接远程数据库
    微信错误:errcode=45015, errmsg=response out of time limit or subscription is canceled
    微信公众号发送模板消息
    VS CODE 开发php实现断点调试
    uni 蓝牙 安卓 监听不到返回数据 不可写入
    vue3.0 兄弟组件传值
    二叉查找树的实现和删除
    模块二:ES新特性与TypeScript、JS性能优化
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/12950332.html
Copyright © 2011-2022 走看看