HashMap是无序的, 你再插入几个数据, 它还会变.

解决方案 »

  1.   

    HashMap无序排列,也不是 同步的。。
      

  2.   

    学习一下:)
    你取值又与顺序无关啊
    HashMap.get("A");
    HashMap.get("B");
    HashMap.get("C");
      

  3.   

    HashMap 是有序的,但是他是根据key的hashcode来进行排序的,你如果要想排序的话,可以使用TREEMap或者是LINKMap,这些是根据key排序的.
      

  4.   

    有排序,看看think in java,这块有讲
      

  5.   

    有排序,看看think in java,这块有讲
    ------------------------
    对我们开发来讲就是没序, 你能跟踪它的Hash变化吗 ?
      

  6.   

    简单的说,hashmap内部的数据结构中有一个链表数组。key值通过hash计算变成一个整数,对应数组下标,value就链在这个数组单元的链表上(不同的key值hash过后,可能会生成相同的值)。
    由此可见,内部数值的顺序并不是以存放的先后顺序为主,而是以hash值的顺序为主,其次才是存放的先后顺序。以前读了段时间源程序,记忆中好像是这样的......jdk目录下游src.zip,有兴趣可以打开hashmap的源程序深入研究一下......