关于java中HasMap的遍历输出不按顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中HasMap的遍历输出不按顺序相关的知识,希望对你有一定的参考价值。

package Dao;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;public class main
public static void main(String []args)
Map hasmap=new HashMap();
hasmap.put("a", "值a");
hasmap.put("b", "值b");
hasmap.put("c", "值c");
hasmap.put("d", "值d"); Iterator i = hasmap.entrySet().iterator();
while(i.hasNext())
Entry entry=(Entry)i.next();
Object key=entry.getKey();
Object value=entry.getValue();
System.out.println("键"+key+value);


输出信息是;键d值d
键b值b
键c值c
键a值a
【问 为什么不是abcd?】

参考技术A 第一种:能顺序遍历就用ArrayList第二种:先把hashMap的key 拿出来 然后把key 排序,通过HashMap的get(String key) 方法取出值 就好了 参考技术B 设置了首尾倒置函数,也会出现这种类似情况。还有,你要注意:map中不允许存在重复的键名,你也可以使用其他的方式来实现,比如List,排序的话还得靠你自己来实现了。 参考技术C hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。
一般来说hasmap存的是无序的
参考技术D 使用 LinkedHashMap

以上是关于关于java中HasMap的遍历输出不按顺序的主要内容,如果未能解决你的问题,请参考以下文章

Java基础篇 关于解决HashMap的元素遍历的顺序问题

关于reportng生成的测试报告不按测试执行顺序的解决办法

关于printf函数输出先后顺序的讲解!!

C笔记01:关于printf函数输出先后顺序的讲解

找一个Java程序:关于二叉树的建立和排序

Visual Studio 2013 解决方案构建不按构建顺序