zoukankan      html  css  js  c++  java
  • 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%),而且代码更加干净。

  • 相关阅读:
    WebMatrix简介与预览
    使用NuGet增加常见包引用
    用Jquery实现的一个Table的帮助js
    使用AspNetPager进行存储过程分页
    Android之旅AppWidget
    SQL积累
    【问题记录】Asp.net WebApplication和WebSite中用户控件的使用区别
    ActionScript 3.0工厂模式实例
    ActionScript 3.0 实现单态模式
    装饰器模式小结
  • 原文地址:https://www.cnblogs.com/vanl/p/7018775.html
Copyright © 2011-2022 走看看