• Java中如何遍历Map对象


      方法一:使用map.entrySet()来遍历。这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要的时候使用。

      Map<String,String> map = new HashMap<String,String>();

      map.put("lw","666");

      map.put("lw1","666");

      if(map.entrySet().size() > 0){

        for(Entry<String,String> entry : map.entrySet()){

          System.out.println("Key = "+entry.getKey()+",Value = "+entry.getValue());

        }

      }

      如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是先判空处理。发现得到的元素不是按照之前加入HashMap的顺序输出的,这个问题我之前倒是没有注意过,后来上网查了一下原因,发现是:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。
      总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。

      可以用java.util.LinkedHashMap 就是按加入时的顺序遍历了。Map<String, String> paramMap = new LinkedHashMap <String, String>();

      方法二:如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet()。

      for(String key : map.keySet()){

        Sysyem.out.println("key = "+key);

      }

      for(String value : map.values()){

        System.out.println("value = "+value);

      }

      该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

  • 相关阅读:
    NPOI单元格公式不刷新
    DIV+CSS HACK
    简答好用的邮件服务器hMailServer(转)
    C# 后台POST和GET 获取数据
    Quartz.Net1.0.2.3 配置记录
    ASP.NET自定义控件VS2012中添加失败(下列控件已成功添加到工具箱中,但未在活动设计器中启用)
    NPOI 1.2.5复制行(包括格式)
    Javascript中Null和Undefined的区别[转]
    测试流程(立项会)
    测试计划
  • 原文地址:https://www.cnblogs.com/vanl/p/7018775.html
Copyright © 2020-2023  润新知