温馨提示×

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

小亿
193
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