我知道它被问了很多次,但所有这些都与其他问题混合在一起,这使得它难以理解。但是我想使用 Math.random 来获得 0-10 的随机数。
事实上,随机数将用作列表的索引号。
到目前为止我做了什么:
int random = Math.random(0,9); // Obviously does not work
您可以创建一个Random
对象并调用nextInt
以获取int
0 和输入的数字(不包括)之间的值。
Random rnd = new Random();
int random = rnd.nextInt(11); // returns range 0-10
返回介于 0(包括)和指定值(不包括)之间的伪随机、均匀分布的 int 值
要从任何 java.util.List 中获取随机项(使用泛型),我得到:
警告:以下代码未经测试。
package forums;
import java.util.List;
import java.util.Random;
public final class ListHelper<T>
{
private static final Random RANDOM = new Random();
public T getRandom(List<T> list) {
return list.get(RANDOM.nextInt(list.size()));
}
}
...或者您可能更喜欢非泛型解决方案,它可以是静态的,但需要您每次(在任何地方)调用它时都对 getRandom 的结果进行类型转换
package forums;
import java.util.List;
import java.util.Random;
public final class Lists
{
private static final Random RANDOM = new Random();
public static Object getRandom(List list) {
return list.get(RANDOM.nextInt(list.size()));
}
}
干杯。基思。
不要使用Math.random()
UseRandom#nextInt()
代替:
int myInt=new Random().nextInt(11);
或者,根据评论,使用
Random r=new Random();
int myInt=r.nextInt(11);
r
并根据需要重复使用。