Seleccione aleatoriamente dos elementos diferentes de ArrayList

Implementación correcta:
Nota: el tamaño debe ser mayor que 1, de lo contrario no hay dos

Random rand=new Random();
//[0,arrayList.size()),左闭右开
int randNumber1 =rand.nextInt(arrayList.size());

int randNumber2 =rand.nextInt(arrayList.size()-1);

if(randNumber2 >=randNumber1 ){
    
    
	randNumber2 =randNumber2 +1;
}

Realización incorrecta:

Random rand=new Random();
//[0,arrayList.size()),左闭右开
int randNumber1 =rand.nextInt(arrayList.size());

int randNumber2 =rand.nextInt(arrayList.size()-1);

if(randNumber2 ==randNumber1 ){
    
    
	randNumber2 =randNumber2 +1;
}

Explicación: randNumber1 es un número aleatorio, principalmente porque randNumber2 es diferente del primer número.
Suponga que el número 1 se selecciona de [0,4), se puede seleccionar 0,1,2,3 y el
número 2 es [0,3), se puede seleccionar 0,1,2
, solo si el número 1 = 2 y el número 2 = 2. En este momento, el número 2 puede ser igual a 3
¡no es razonable! ! ! No es al azar


Supongo que te gusta

Origin blog.csdn.net/root_zhb/article/details/107830349
Recomendado
Clasificación