生成随机数将返回java.util.Random@15db9742

时间:2015-04-21 17:39:37

标签: java

我试图生成一个随机数并从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;
}

似乎它的回归可能是记忆位置,但我不确定。

4 个答案:

答案 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()

或双倍,或任何你想要使用的东西。