java - Guava - 如何使用 Range 生成随机数?

标签 java random guava

Google 的 Guava 库提供了一个很棒的类 Range ,它有很多有用的方法,比如 greaterThan(x)open(x,y) 等。我想知道是否有任何方法可以应用这种方法来生成一个Range 内的随机数?

最佳答案

我不建议为这个基本应用程序使用范围。

最容易使用的方法是已经实现的 Random 类。

下面是如何使用这个类:

获取任意值的随机整数:

Random r = new Random();
r.nextInt();

获取最小 x,最大 y 范围内的随机整数:

Random r = new Random();
r.nextInt(y - x) + x;

这是获取范围内随机数的最基本方法。 我敢打赌范围类中有一个 getMin 和 getMax 方法,因此请将其用于 x 和 y。

此外,如果您想要一个大于 x 的最小值的随机数,只需执行以下操作:

Random r = new Random();
Math.abs(r.nextInt().nextInt()) + x;

^以上代码生成任意正整数,x保证最小值。

-或-

nextInt(Integer.MAX_VALUE - (x + 1)) + (x + 1)

-正如 ColinD 所建议的 希望这可以帮助。 -经典

关于java - Guava - 如何使用 Range 生成随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24535073/

相关文章:

java - "Creating"java中的一个对象

java - 调试递归函数

乌帕尔中的随机数

php - 设置随机播放,不重复

grails - 如何排除来自Grails 2.4.3中$ GRAILS_HOME/libs/的默认库

scala - Scala 中的轻量级缓存解决方案?

java - Android FFT后值全为0

java - 使用 addIntentOptions 添加到菜单,为单个 Activity 提供多个 Intent

java - 随机 4 个小于最大最大值(例如 100_000)的唯一整数的有效算法

caching - 有人如何异步使用 Guava 的 CacheLoader