21xrx.com
2024-11-10 00:48:52 Sunday
登录
文章检索 我的文章 写文章
Java实现指定范围内的随机不重复整数生成
2023-07-05 01:58:35 深夜i     --     --
Java 随机整数 不重复 指定范围 生成

在开发过程中,经常需要生成一些随机数。但是如果需要生成指定范围内的随机整数,并且这些整数不能重复,那该如何实现呢?Java提供了一种非常简单的方式来实现这个功能。

Java中提供了Random类来生成随机数。但是这个类只能生成随机数,不能满足不重复的要求。因此,我们需要借助一些其他的数据结构来实现这个功能。

其中,最简单的一种方式就是使用HashSet。HashSet是一种哈希表实现的集合类,可以很容易地去重。我们可以在生成随机数之后,将它加入到HashSet中。如果HashSet中已经存在该数,则说明生成的随机数是重复的,需要重新生成,否则加入HashSet即可。

以下是实现代码:


import java.util.HashSet;

import java.util.Random;

import java.util.Set;

public class RandomGenerator {

  public static Set<Integer> generateNonRepeatedRandom(int startInclusive, int endExclusive, int count) {

    if (count > (endExclusive - startInclusive)) {

      throw new IllegalArgumentException("count can't be greater than range.");

    }

    Random random = new Random();

    Set<Integer> resultSet = new HashSet<>();

    while (resultSet.size() < count) {

      int randomInt = random.nextInt(endExclusive - startInclusive) + startInclusive;

      resultSet.add(randomInt);

    }

    return resultSet;

  }

}

在使用时,直接调用generateNonRepeatedRandom方法即可:


Set<Integer> set = RandomGenerator.generateNonRepeatedRandom(0, 100, 10);

System.out.println(set);

以上代码将在0~100范围内生成10个不重复的随机数并输出。

总结来说,使用HashSet可以非常简单地实现随机不重复整数的生成。除此之外,还有其他的数据结构可以实现同样的功能,比如TreeSet、LinkedHashSet等。但是HashSet是最简单、最直接的一种方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复