set集合 是不重复的,无序的
为什么如下
Set<Integer> set=new HashSet<Integer>();
   set.add(1);
   set.add(4);
   set.add(3);
   set.add(8);
   set.add(2);
   System.out.println(set);
[1, 2, 3, 4, 8]还是排了序了。求解释,谢了。

解决方案 »

  1.   

    lz  不是你这样的 你可以再测试几组数据 就会发现其实set并没有排序~
      

  2.   

    你可以换成几个更大的数字来看看。另外:Set本身只是个接口,它只是说“不保证有序,并不是说绝对不排序”。具体类实现的效果也存在差异,比如 TreeSet 这个实现类:
    A NavigableSet implementation based on a TreeMap. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.就明确表示“The elements are ordered ”,采用:“natural ordering” 或 Comparator。
      

  3.   

    例如 set.add(100);
    就会发现 其实并没有排序了
      

  4.   

    Set是接口,HashSet实现接口,默认是不排序,而TreeSet是默认是自然排序的