用户定义的arraylist中的Random()

时间:2016-12-09 15:32:41

标签: java arraylist

我对java和编码很新,所以要温柔。

所以我有一个名为films的类,它只包含getFilmID(),getFilmTitle(),getFilmDuration()等方法。我觉得不需要包含这个类的代码,但它是相关的。

我有一个第二课,我想要显示一个用户存储在名为myfilms的arraylist中的随机电影。

到目前为止我已经

数组列表

public static ArrayList<Films> myfilms = new ArrayList<Films>();

和随机方法

private static void randomFilm()
{
    int num = (int) (Math.random()*myfilms);
    System.out.println("The film is: " + myfilms);
}

“对于参数类型double,ArrayList”

,运算符*未定义

我觉得我很接近这个权利,但谁知道呢。我可能会离开一英里。

2 个答案:

答案 0 :(得分:2)

int num = (int) (Math.random() * myFilms.size());

myFilms不是数字实例,而是ArrayList,因此您无法将double乘以ArrayList。 而且我认为你想要做的是增加myFilms的大小,所以使用myFilms.size()

答案 1 :(得分:1)

这根本行不通。

你使用Random来获取一个整数(理想情况是在0和myfilms.size()之间;然后你只需要myfilms.get(thatIndex);从获取随机选择的电影列表。

换句话说:您的代码在myfilms对象上使用乘法运算符“*”。这没有任何意义;并为您提供*未定义

的消息
double [ left hand side --- Math.random() ]

ArrayList [ right hand side --- myfilms ]

相反,您可以通过Math.random * myfilms.size();

计算该索引。

或者您只是直接使用Random.nextInt(int)