import java.util.HashMap;
import java.util.Map;public class Test {

public static void main(String [] args) {
Map<String,String> map = new HashMap<String, String> ();
map.put(String.valueOf(System.currentTimeMillis()) + "a", "1");
map.put(String.valueOf(System.currentTimeMillis()) + "b", "2");
map.put(String.valueOf(System.currentTimeMillis()) + "c", "3");
System.out.println(map);
}

}为什么每次运行输出的顺序都有可能不一样呢?

解决方案 »

  1.   

    HashMap被设计用来快速访问,对未对键进行排序
      

  2.   

    去看String的hashcode方法以及HashMap的源代码
      

  3.   

    因为System.currentTimeMillis()每次运行得到的值不一样,根据hash算法得到的hash值就不一样,所以存入hashmap的位置就不一样,输出顺序也就不一样了
      

  4.   

    hashMap中的键是无序的。
    如果你希望键按照顺序排序,推荐使用TreeMap,因为他实现了SortedMap接口