zoukankan      html  css  js  c++  java
  • 【开发笔记】- Java中关于HashMap的元素遍历的顺序问题

    今天在使用如下的方式遍历HashMap里面的元素时

    for (Entry<String, String> entry : hashMap.entrySet()) {
        MessageFormat.format("{0}={1}",entry.getKey(),entry.getValue());
    }

      发现得到的元素不是按照之前加入HashMap的顺序输出的,这个问题我之前倒是没有注意过,后来上网查了一下原因,发现是:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。

      总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。

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

      可以用java.util.LinkedHashMap 就是按加入时的顺序遍历了。

    Map<String, String> paramMap = new LinkedHashMap <String, String>();

      类似的还有 java.util.LinkedHashSet

  • 相关阅读:
    对Java课程的感想
    OO第二阶段总结
    OO第一作业周期(前四周)总结
    实验7 流类库和输入输出
    实验6 类的继承和多态
    实验5 类和对象3
    实验4 类与对象2
    实验3 类和对象
    实验2
    实验1
  • 原文地址:https://www.cnblogs.com/juihai/p/11410582.html
Copyright © 2011-2022 走看看