我试图生成一个随机数并从arraylist中删除它,但它返回java.util.Random@15db9742,而不是数字。
我的两个构造函数和删除。
public Randomlist(){
this.alist = new ArrayList<E>();
this.rand = new Random();
}
public Randomnlist(int seed) {
this.alist = new ArrayList<E>();
this.rand = new Random(seed);
}
public E randomnum(){
Random x = this.rand;
this.alist.remove(x);
return (E)x;
}
似乎它的回归可能是记忆位置,但我不确定。
答案 0 :(得分:2)
new Random()
返回一个随机数 generator ,它是一个Java对象(如果你试图将它转换为字符串,这就是你得到java.util.Random@15db9742
的原因)。你想要的是使用this.rand.nextInt()
或this.rand.nextFloat()
等从中获取随机数,具体取决于你想要的随机数。
请参阅API规范的java.util.Random(链接版本是Java 8)。
答案 1 :(得分:0)
Random rand = new Random();
int n = rand.nextInt(X) + 1;
// X是最大值,1是最小值
答案 2 :(得分:0)
得到例如下一个整数,请执行this.rand.nextInt(); nextInt()方法将返回一个随机整数
答案 3 :(得分:0)
这是类名+ @ +对象的哈希码。
x应该是您尝试返回的任何类型的随机数。
public E randomnum(){
E x = this.rand;
this.alist.remove(x);
return x;
}
在这种情况下,
Random rand = new Random(seed);
this.rand = rand.nextInt()
或双倍,或任何你想要使用的东西。