我对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”
,运算符*未定义我觉得我很接近这个权利,但谁知道呢。我可能会离开一英里。
答案 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)