番石榴 - 如何使用Range生成随机数?

jay*_*917 2 java random guava

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

JCl*_*sic 7

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

最简单的方法是使用已经实现的Random类.

以下是如何使用该类:

获取任意值的随机整数:

Random r = new Random();
r.nextInt();
Run Code Online (Sandbox Code Playgroud)

要获得min x,max y范围内的随机整数:

Random r = new Random();
r.nextInt(y - x) + x;
Run Code Online (Sandbox Code Playgroud)

这是获取范围内随机数的最基本方法.我打赌在范围类中有一个getMin和getMax方法,所以对x和y使用它.

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

Random r = new Random();
Math.abs(r.nextInt().nextInt()) + x;
Run Code Online (Sandbox Code Playgroud)

^上面的代码生成任何正整数,x确保最小值.

-要么-

nextInt(Integer.MAX_VALUE - (x + 1)) + (x + 1)
Run Code Online (Sandbox Code Playgroud)

- 由ColinD Hope建议这有帮助.-经典