import java.util.HashSet;
import java.util.Random;public class Test {
public static void main(String[] args) {
HashSet hs = new HashSet();
for(;;){
int i = new Random().nextInt(4);
hs.add(i);
if(hs.size() == 4)break;
}
                  //如何把集合里面的值放到整形数组里面?
}
}
遇到一个随机不重复的问题,所以想到Set集合不知道行不行.
那位强人指点下,本人初学者.

解决方案 »

  1.   

    have a try
    Integer[] ia = hs.toArray(new Integer[0]);
      

  2.   

    用toArray方法可以把集合转换成数组形式
      

  3.   

    用泛型的话,这样就可以    public static void main(String[] args) {
            HashSet<Integer> hs = new HashSet<Integer>();
            for (;;) {
                int i = new Random().nextInt(4);
                hs.add(i);
                if (hs.size() == 4)
                    break;
            }
            // 如何把集合里面的值放到整形数组里面?
            Integer[] arrs = hs.toArray(new Integer[hs.size()]);
            
            for (int i=0;i<arrs.length;i++) {
                System.out.println(arrs[i]);    
            }
        }
      

  4.   

    不用泛型得自己转,麻烦点    public static void main(String[] args) {
            HashSet hs = new HashSet();
            for (;;) {
                int i = new Random().nextInt(4);
                hs.add(i);
                if (hs.size() == 4)
                    break;
            }
            // 如何把集合里面的值放到整形数组里面?
            Object[] arrs = hs.toArray();
            int[] iarr=new int[arrs.length];
            
            for (int i=0;i<arrs.length;i++) {
                iarr[i] = (Integer)arrs[i];  
            }
            
            for (int i=0;i<iarr.length;i++) {
                System.out.println(iarr[i]);    
            }
        }