Java中关于HashMap的元素遍历的顺序问题

来源:互联网 发布:制作菜单图片软件 编辑:程序博客网 时间:2024/06/16 03:55

Java中关于HashMap的元素遍历的顺序问题

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

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

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

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

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

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

  类似的还有 java.util.LinkedHashSet

分类: Java
好文要顶 关注我 收藏该文 
孤傲苍狼
关注 - 88
粉丝 - 11117
+加关注
7
0
« 上一篇:JAVA 判断一个字符串是不是一个合法的日期格式
» 下一篇:用Jquery控制文本框只能输入数字和字母

posted on 2014-02-20 23:24 孤傲苍狼 阅读(13588) 评论(1) 编辑 收藏

评论

#1楼 2016-10-18 16:49 羽翼未丰之冲天槊