在 Java 中,使用'random.ints'方法生成的随机数是可以重复的。这是因为该方法生成的是一个无限流,它会不断生成随机数直到达到指定的大小或者满足其他终止条件。

如果你希望生成不重复的随机数,有几种方法可以实现:

  1. 使用'distinct'方法:可以使用'distinct'方法从生成的随机数流中移除重复的元素。但是要注意的是,这种方法只适用于生成的随机数范围较小且生成的数量较少的情况。
Random random = new Random();
random.ints(1, 100).distinct().limit(10).forEach(System.out::println);
  1. 使用'Set'集合:可以使用'Set'集合来存储生成的随机数,由于'Set'不允许重复元素,可以确保不会生成重复的随机数。
Random random = new Random();
Set<Integer> set = new HashSet<>();
while (set.size() < 10) {
    set.add(random.nextInt(100));
}
set.forEach(System.out::println);
  1. 使用洗牌算法:可以生成一个包含所有可能随机数的列表,然后使用洗牌算法(如Fisher-Yates算法)来打乱列表顺序,从而得到不重复的随机数。
Random random = new Random();
List<Integer> list = IntStream.range(1, 100).boxed().collect(Collectors.toList());
Collections.shuffle(list, random);
list.stream().limit(10).forEach(System.out::println);

这些方法可以根据你的需求选择适合的方式来生成不重复的随机数。

Java Random.ints() 生成随机数重复问题及解决方案

原文地址: https://www.cveoy.top/t/topic/pe7I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录