从ArrayList中随机选择两个不同的元素

正确实现:
注意:size必须大于1,不然没有两个

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

错误实现:

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

解释:randNumber1是随机的一个数,主要是看randNumber2与第一个数不同。
假设数1从[0,4)之间进行选取,可选择0,1,2,3
数2是[0,3),可选择0,1,2
存在情况,只有当数1=2 and 数2=2,这时候数2才能等于3
不合理!!!它不是随机的


猜你喜欢

转载自blog.csdn.net/root_zhb/article/details/107830349