java生成8位不重复的随机数
时间: 2023-09-14 17:14:42 浏览: 222
可以使用Java的Random类和Set集合来实现生成8位不重复的随机数,代码如下:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomTest {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
Random random = new Random();
while (set.size() < 8) {
int num = random.nextInt(100000000);
set.add(num);
}
for (int num : set) {
System.out.println(num);
}
}
}
```
此代码生成8个不重复的随机数,每个数都是8位的整数。
相关问题
java生成永远不重复的随机数_java生成不重复随机数的方法
生成不重复的随机数可以采用以下两种方法:
1. 使用java.util.Random类生成随机数,并将生成的随机数存储到一个Set或者List容器中,每次生成新的随机数时都先检查容器中是否已经存在该随机数,如果已存在则重新生成,直到生成一个不在容器中的随机数。
示例代码:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomUtil {
private static Set<Integer> set = new HashSet<>();
private static Random random = new Random();
private static final int MAX_NUM = 100;
public static int generateRandom() {
int randomNum;
do {
randomNum = random.nextInt(MAX_NUM);
} while (set.contains(randomNum));
set.add(randomNum);
return randomNum;
}
}
```
2. 使用java.security.SecureRandom类生成随机数,并将生成的随机数存储到一个数组中,每次生成新的随机数时,从数组中随机取出一个数,并将该位置上的数与数组末尾的数交换位置,然后缩小数组范围,以避免重复。
示例代码:
```java
import java.security.SecureRandom;
public class RandomUtil {
private static final int MAX_NUM = 100;
private static int[] arr = new int[MAX_NUM];
private static SecureRandom secureRandom = new SecureRandom();
private static int size = MAX_NUM;
static {
for (int i = 0; i < MAX_NUM; i++) {
arr[i] = i;
}
}
public static int generateRandom() {
if (size == 0) {
size = MAX_NUM;
}
int index = secureRandom.nextInt(size--);
int randomNum = arr[index];
arr[index] = arr[size];
arr[size] = randomNum;
return randomNum;
}
}
```
以上两种方法都可以生成不重复的随机数,但是第二种方法使用了安全的随机数生成器,更加安全可靠。
java生产六位不重复随机数
在Java中,生成六个不重复的随机整数可以使用`Random`类结合数组的方式来实现。首先创建一个包含0到9的整数数组,然后每次从数组中随机选择一个元素放入结果,并确保选择后移除该元素,以避免重复。以下是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[] numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Random random = new Random();
ArrayList<Integer> result = new ArrayList<>();
while (result.size() < 6) {
int index = random.nextInt(numbers.length);
int num = numbers[index];
numbers[index] = numbers[numbers.length - 1]; // 将最后一个元素移到索引位置,替换掉已选取的
numbers[numbers.length - 1] = 0; // 清空数组最后一位
result.add(num);
}
// 输出结果
for (int i : result) {
System.out.print(i + " ");
}
}
}
```
运行此代码将打印出六个不重复的随机整数。注意这个实现并不是真正的“不重复”,因为在生成过程中会改变数组,所以后续生成的数字可能会导致重复。如果需要真正意义上的无重复,应使用更复杂的数据结构,如`Set`。
阅读全文