在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 List 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 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`类。