Random 我想出了这两种方法来获得5个唯一的随机数。哪一个更好/更有效?还有其他更有效的方法吗?

Random 我想出了这两种方法来获得5个唯一的随机数。哪一个更好/更有效?还有其他更有效的方法吗?,random,numbers,generator,Random,Numbers,Generator,方法1 方法2 public int[]randIntGen(){ int randInt[]={1,2,3,4,5}; 随机=新随机(); ArrayList cl=新的ArrayList(52); int i=0; 虽然(我允许你的问题删除虚拟文本-准确解释问题本身的内容,标题应该简短易读。同时为你使用的语言添加标记。关于这一点,有一个非常好的wiki页面可能会对你有所帮助 public int[] randIntGen() { int randInt[] = {0,0,0,0,0

方法1

方法2

public int[]randIntGen(){
int randInt[]={1,2,3,4,5};
随机=新随机();
ArrayList cl=新的ArrayList(52);
int i=0;

虽然(我允许你的问题删除虚拟文本-准确解释问题本身的内容,标题应该简短易读。同时为你使用的语言添加标记。关于这一点,有一个非常好的wiki页面可能会对你有所帮助
 public int[] randIntGen() {
    int randInt[] = {0,0,0,0,0};
    Random random = new Random();
    randInt[0] = random.nextInt(52) + 1;            
    randInt[1] = random.nextInt(52) + 1;
    randInt[2] = random.nextInt(52) + 1;
    randInt[3] = random.nextInt(52) + 1;
           randInt[4] = random.nextInt(52) + 1;
    while(randInt[1] == randInt[0]) {
        randInt[1] = random.nextInt(52) + 1 ;
    }
    while(randInt[2] == randInt[0] || randInt[2] == randInt[1]) {
        randInt[2] = random.nextInt(52) + 1;
    }           
           while(randInt[3] == randInt[0] || randInt[3] == randInt[1] || randInt[3] == randInt[2]) {
        randInt[3] = random.nextInt(52) + 1;
    }           
           while(randInt[4] == randInt[0] || randInt[4] == randInt[1] || randInt[4] == randInt[2] || randInt[4] == randInt[3]) {
        randInt[4] = random.nextInt(52) + 1 ;
    }           
    return randInt;
}
public int[] randIntGen()   {
     int randInt[] = {1,2,3,4,5};
     Random random = new Random();
            ArrayList<Integer> cl = new ArrayList<Integer>(52);
            int i = 0;
            while(i<52){
                i++;
                cl.add(i-1,i);
            }
            for(int j=0; j<5;j++) {
                randInt[j] = cl.get(random.nextInt(52));
                cl.remove(randInt[j]-1);                
            }
    return randInt;
}