我知道它被多次询问,但所有这些都与另一个难以理解的问题混在一起。但是我想使用Math.random在0-10中得到一个随机数。
实际上,随机数将用作列表的索引号。
到目前为止我做了什么:
int random = Math.random(0,9); // Obviously does not work
答案 0 :(得分:5)
您可以创建一个Random
对象并致电nextInt
以获得介于0和输入数字(不包括)之间的int
。
Random rnd = new Random();
int random = rnd.nextInt(11); // returns range 0-10
返回一个伪随机数,在0之间均匀分布的int值 (包括)和指定值(不包括)
答案 1 :(得分:1)
请勿使用Math.random()
使用Random#nextInt()
代替:
int myInt=new Random().nextInt(11);
或者,根据评论,使用
Random r=new Random();
int myInt=r.nextInt(11);
并根据需要重复使用r
。
答案 2 :(得分:1)
要从任何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()));
}
}
干杯。基思。