Я придумал эти два метода, чтобы получить 5 уникальных случайных чисел.Какой из них лучше / эффективнее?Есть ли другой способ более эффективный? - PullRequest
0 голосов
/ 23 мая 2018

Метод 1

 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;
}

Метод 2

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;
} 
...