估计是它重写的toString方法。

解决方案 »

  1.   

    并不能自动排序, 
                      hs.add(5);
    hs.add(3);
    hs.add(9);
    hs.add(36);
    hs.add(6);
    hs.add(7);
    hs.add(25);
    hs.add(89);
    hs.add(1);
            System.out.println(hs); 
    }
    只能部分排序,不知道是什么原因?
      

  2.   

    呵呵,HashSet的迭代器,是根据HashSet内部Map中的节点的HashCode来排序的.
    你保存到Map中的数值是Long型的嘛,所以每个Long型的hashCode无形中有了顺序.另外,
    如果希望HashSet真正在迭代时保持插入时的顺序,请使用Set mySet= new LinkedHashSet();
      

  3.   

    HashSet  的迭代是无序的,为什么每次输出的顺序都是固定的呢而且只要数值大于等于16就不排序啦,小于16就自动排序,难道跟它的最大容量16有关