import java.util.HashSet; import java.util.Random; import java.util.Set; public class RandomNumberGenerator { public static void main(String[] args) { Set<Integer> numbers = new HashSet<>(); Random random = new Random(); while (numbers.size() < 45) { int randomNumber = random.nextInt(45) + 1; numbers.add(randomNumber); } System.out.println(numbers); } }生成一个乱序数组
时间: 2024-04-15 15:27:05 浏览: 140
java.util.Random与Math.random区别
要生成一个乱序的数组,你可以将生成的随机数存储在一个数组中,然后使用洗牌算法(如 Fisher-Yates 算法)来打乱数组的顺序。以下是修改后的代码:
```java
import java.util.Arrays;
import java.util.Random;
public class RandomNumberGenerator {
public static void main(String[] args) {
int[] numbers = new int[45];
Random random = new Random();
// 生成1-45的顺序数
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i + 1;
}
// 使用洗牌算法打乱数组顺序
for (int i = 0; i < numbers.length; i++) {
int j = random.nextInt(numbers.length);
swap(numbers, i, j);
}
System.out.println(Arrays.toString(numbers));
}
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
```
在上述代码中,我们首先生成了一个包含1-45顺序数的数组。然后使用洗牌算法通过交换数组中元素的位置来打乱数组的顺序。最后,我们将打乱后的数组输出到控制台。
请注意,洗牌算法会修改原始数组,如果你需要保留原始数组,请在洗牌之前创建一个备份。
阅读全文