Java

java取不重复随机数的方法是什么

小亿
116
2023-08-24 00:28:26
栏目: 编程语言

在Java中,可以使用Random类和HashSet来生成不重复的随机数。具体步骤如下:

  1. 导入Random类和HashSet类:
import java.util.Random;
import java.util.HashSet;
  1. 创建Random对象和HashSet对象:
Random random = new Random();
HashSet<Integer> set = new HashSet<>();
  1. 使用while循环生成随机数并添加到HashSet中,直到HashSet的大小等于所需的不重复随机数个数:
while(set.size() < desiredSize) {
int randomNumber = random.nextInt(maxValue);
set.add(randomNumber);
}
  1. 将HashSet转换为数组或列表(可选):
Integer[] randomNumbersArray = set.toArray(new Integer[0]);
List<Integer> randomNumbersList = new ArrayList<>(set);

完整示例代码如下:

import java.util.Random;
import java.util.HashSet;
public class RandomNumberGenerator {
public static void main(String[] args) {
int desiredSize = 10; // 生成的随机数个数
int maxValue = 100; // 随机数的最大值
Random random = new Random();
HashSet<Integer> set = new HashSet<>();
while(set.size() < desiredSize) {
int randomNumber = random.nextInt(maxValue);
set.add(randomNumber);
}
Integer[] randomNumbersArray = set.toArray(new Integer[0]);
System.out.println("随机数数组:");
for(int i = 0; i < randomNumbersArray.length; i++) {
System.out.println(randomNumbersArray[i]);
}
}
}

运行以上代码,会生成10个不重复的随机数并打印出来。注意,如果所需的不重复随机数个数大于最大值,可能会陷入无限循环,因此需要设置合适的最大值或增加循环条件的控制。

0
看了该问题的人还看了