关于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?】

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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网