要求是这样的:一个int a[]=new int[10],要求把0-9这十个数,随机的放在a数组中,不能重复。在线等。

解决方案 »

  1.   

    int[] intRet = new int[10]; 
        int intRd = 0; //存放随机数
        int count = 0; //记录生成的随机数个数
        int flag = 0; //是否已经生成过标志
        while(count<10){
             Random rdm = new Random(System.currentTimeMillis());
             intRd = Math.abs(rdm.nextInt())%10;
             for(int i=0;i<count;i++){
                 if(intRet[i]==intRd){
                     flag = 1;
                     break;
                 }else{
                     flag = 0;
                 }
             }
             if(flag==0){
                 intRet[count] = intRd;
                 count++;
             }
        }
    for(int t=0;t<10;t++){
    System.out.print(intRet[t]+" ");
    }
      

  2.   

    先顺序生成数组,然后依次选出每一个数和另外一个数(该数的位置是随机生成的0~9)交换位置即可.import java.util.Random;
    public class Rand { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] a = new int[]{0,1,2,3,4,5,6,7,8,9};
    Random rand = new Random(System.currentTimeMillis());
    int index = 0;
    int temp = 0;
    for (int i = 0; i < 10; i ++){
    index = Math.abs(rand.nextInt() % 10);
    // System.out.println(index);
    temp = a[i];
    a[i] = a[index];
    a[index] = temp;
    }
    for (int i = 0; i < 10; i ++){
    System.out.print("  " + a[i]);
    }
    }
    }