要生成多個(gè)不重復(fù)的隨機(jī)數(shù),可以使用集合(如Set)來(lái)保存已生成的隨機(jī)數(shù),并在生成新的隨機(jī)數(shù)時(shí)進(jìn)行判斷。以下是一個(gè)示例:
import java.util.*;
pubpc class Main {
pubpc static void main(String[] args) {
int min = 1; // 最小值(包含)
int max = 10; // 最大值(包含)
int count = 5; // 隨機(jī)數(shù)個(gè)數(shù)
Set set = new HashSet<>();
Random random = new Random();
while (set.size() < count) {
int randomNumber = random.nextInt(max - min + 1) + min;
if (!set.contains(randomNumber)) {
set.add(randomNumber);
}
}
for (int number : set) {
System.out.println(number);
}
}
}
以上代碼會(huì)生成指定個(gè)數(shù)的不重復(fù)隨機(jī)數(shù)。在循環(huán)中,我們使用 random.nextInt(max - min + 1) + min
來(lái)生成位于指定范圍內(nèi)的隨機(jī)整數(shù)。然后,在將生成的隨機(jī)數(shù)添加到集合之前,通過(guò) set.contains(randomNumber)
判斷該隨機(jī)數(shù)是否已存在于集合中,如果不存在,則將其添加到集合中。
輸出:
7
1
9
2
5
請(qǐng)注意,此方法適用于較小的范圍和較小的生成數(shù)量。對(duì)于更大的范圍或需要生成更多不重復(fù)隨機(jī)數(shù)的情況,可能需要采用其他算法或數(shù)據(jù)結(jié)構(gòu)來(lái)優(yōu)化性能。另外,如果指定的范圍比生成數(shù)量小,那么無(wú)法生成足夠的不重復(fù)隨機(jī)數(shù)。