首先,我是java新手所以请怜悯。 我创建了一个Movie类和一个MovieList类。 MovieList类基本上是一个应该包含电影对象的数组
public class MovieList{
//fields
private Movie[] movieList = new Movie[100];
现在,在MovieList类中我有一个方法添加我应该在main中调用的电影。现在我的问题是,如何在for循环中创建我应该添加到MovieList的新Movie对象。就像创建一个未定义数量的电影对象,从控制台获取它们的字段。 我试过Movie movie1 = new Movie();但是在for循环中它会被覆盖,我的MovieList最终只包含我从控制台输入的最后一个movie1。 我也尝试在main中创建一个包含空电影对象的新数组,并且我会在for循环中设置它们的字段,但是数组也是有限的,我似乎无法增加它。 无论如何我可以获得一个电影movie2 =新电影()......等等但是使用一个变量用于" movie2"我可以以某种方式改变为movie3?
public static void shortMovie(Movie[] arrayMovie,int x,int y){
Scanner console = new Scanner(System.in);
String title;
int id;
System.out.println("Now please enter the movies, just name and ID");
for(int i=x; i<y; i++){
System.out.println("Please enter the detail of the movie in this order");
System.out.println("Please enter the title of the movie");
title = console.next();
System.out.println("Please enter the id of the movie");
id = console.nextInt();
arrayMovie[i].setTitle(title);
arrayMovie[i].setId(id);
}
} 我在main中使用这个方法,还有一个包含空电影对象的额外数组,但数组最终会结束。
答案 0 :(得分:0)
首先,如果我正确理解你的问题,你将需要一个Collection对象,最好是List来动态增加大小。
然后你的循环添加看起来像这样的电影。
int index=0;
List<Movie> movieList = new LinkedList<Movie>();
System.out.println("Enter the movie info ID and Title");
while (index++ < size) {
Movie movie = new Movie();
System.out.println("Movie Title:");
movie.setTitle(console.next());
System.out.println("Movie Id:");
movie.setId(console.nextInt());
movieList.add(movie);
}
System.out.println(movieList.size()); // Count of movie added
希望这能解决你的问题。
答案 1 :(得分:0)
你应该先制作电影。
&#34; shortMovie&#34;方法,尝试:
arrayMovie[i] = new Movie();
arrayMovie[i].setTitle(title);
arrayMovie[i].setId(id);
...
答案 2 :(得分:0)
您可能需要ArrayList(或其他动态集合)而不是数组:
List<Movie> movieList = new ArrayList<Movie>();
然后,您将能够在循环中的控制台中执行以下操作:
for(int i=x; i<y; i++){
System.out.println("Please enter the detail of the movie in this order");
System.out.println("Please enter the title of the movie");
title = console.next();
System.out.println("Please enter the id of the movie");
id = console.nextInt();
Movie movie = new Movie();
movie.setTitle(title);
movie.setId(id);
movieList.add(movie);
}
或者,如果您确实想要使用数组,那么看起来您所缺少的就是在设置值之前初始化每个数组条目:
arrayMovie[i] = new Movie();
arrayMovie[i].setTitle(title);
arrayMovie[i].setId(id);