java编程怎么取多个随机数

时间:2025-01-28 03:49:43 网络游戏

在Java中,可以使用`java.util.Random`类来生成随机数,并且有多种方法可以获取多个不重复的随机数。以下是几种常见的方法:

方法一:使用List和Random

1. 创建一个`List`集合和一个`Random`对象。

2. 使用`while`循环生成随机数,直到集合的大小达到所需的数量。

3. 在循环中,生成一个随机数并检查它是否已经存在于集合中,如果不存在则添加到集合中。

```java

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

public class Test {

public static void main(String[] args) {

System.out.println(getRandomNumList(10, 0, 100));

}

public static List getRandomNumList(int nums, int start, int end) {

List list = new ArrayList<>();

Random r = new Random();

while (list.size() < nums) {

int num = r.nextInt(end - start + 1) + start;

if (!list.contains(num)) {

list.add(num);

}

}

return list;

}

}

```

方法二:使用Set和Random

1. 创建一个`Set`集合和一个`Random`对象。

2. 使用`while`循环生成随机数,直到集合的大小达到所需的数量。

3. 在循环中,生成一个随机数并添加到集合中,由于`Set`不允许重复元素,因此集合中最终会包含所有不重复的随机数。

```java

import java.util.HashSet;

import java.util.Set;

import java.util.Random;

public class RandomNumbers {

public static void main(String[] args) {

int n = 10;

Set set = new HashSet<>();

Random rand = new Random();

while (set.size() < n) {

int num = rand.nextInt(100);

set.add(num);

}

for (int num : set) {

System.out.println(num);

}

}

}

```

方法三:使用Java 8的Stream API

如果你使用的是Java 8或更高版本,可以使用`Stream` API来简化生成多个不重复随机数的过程。

```java

import java.util.Random;

import java.util.stream.IntStream;

public class RandomNumbersStream {

public static void main(String[] args) {

int n = 10;

int range = 100;

IntStream.range(0, n).forEach(i -> {

int num;

do {

num = new Random().nextInt(range);

} while (IntStream.range(0, n).anyMatch(j -> j == i));

System.out.println(num);

});

}

}

```

方法四:使用UUID

如果你需要生成多个不重复的随机字符串,可以使用`UUID`类。

```java

import java.util.UUID;

public class RandomStrings {

public static void main(String[] args) {

for (int i = 0; i < 20; i++) {

String randomString = UUID.randomUUID().toString().replace("-", "");

System.out.println("\"" + randomString + "\",");

}

}

}

```

总结

以上方法各有优缺点,选择哪种方法取决于你的具体需求和应用场景。如果需要生成不重复的整数随机数,使用`Set`和`Random`或`Stream` API是比较高效的方法。如果需要生成随机字符串,可以使用`UUID`类。