int[] num = { 3, 3, 3, 3, 2, 4, 5, 5, 5, 5, 6 }; 
Integer[] num2;
Set<Integer> set=new HashSet<Integer>();
for(int i:num){
set.add(i);
}
num2=(Integer[])set.toArray(new Integer[0]);
for(int i=0;i<num2.length;i++)
System.out.print(num2[i]);
运行结果为:2,4,6,3,5
set的存值规则是什么?

解决方案 »

  1.   

    Set中的elements不能重复,顺序是不确定的.
    看API文档好像比较仔细吧?
      

  2.   

    Set中的elements不能重复,顺序是不确定的. 
     想有顺序就放到List里~
      

  3.   

        同志们说的都很对,我再补充下:就你那个例子里HashSet<Integer>而言,它判定它要add值的标准是equals()
    和hashCode(当然这现个方法Integer里都自己实现了,不要自己重写了,但是如果把Integer替换成你自己定义的类,
    那么一定要记得在那个类里重写equqls()和hashCode()啊)
      

  4.   

          同志们说的都很对,我再补充下:就你那个例子里HashSet <Integer>而言,它判定它要add值是否相等的标准是equals()
    和hashCode(当然这现个方法Integer里都自己实现了,不要自己重写了,但是如果把Integer替换成你自己定义的类,
    那么一定要记得在那个类里重写equqls()和hashCode()啊)
      

  5.   

    只知道是不重复的
    不知道lz知不知道,HashSet <Integer>这种是泛型,提一下
      

  6.   

    1、set内的元素都是唯一的,这个唯一取决于元素对象的equals方法;
    2、set内的元素顺序是固定的,其顺序取决于元素对象的hashcode方法;