如何使用for循环在java中的数组中存储多个影片

时间:2015-04-07 18:25:32

标签: java arrays eclipse for-loop

我目前正在开展一个学校项目,我必须提示多个电影片名,以及每部电影的副本数量,并将它们存储在一个数组中。然而,似乎每次我要求一个新的标题,它写在最后的标题。我目前有两个文件rentalplace.javavideo.java(两者的内容都包含在底部)。目前我提示只输入3部电影。它看起来像这样:

  

视频标题?
狮子王的副本数量?
3视频标题?发现   nemo
副本数量?
5视频标题?
Monsters inc。
数量   副本?
1

输入这些答案时会发生什么,是最后一次迭代 (我放入“Monsters inc。”)将打印数组中的所有空格。像这样:

  

标题----------#copies -------#可用

怪物   inc ----- 1 --------------- 1

怪物   inc ----- 1 --------------- 1

怪物   INC ----- 1 --------------- 1

我需要找到一种方法来做到这一点,而不会覆盖数组中的先前值,以便第一个位置[0]将显示为“狮子王”和第二个位置{ {1}}将显示为“Finding Nemo”

我的代码:[1]

rentalplace.java

package videolibrary; import java.util.Scanner; public class rentalplace { public static void printAll(int current, video[] varray) { System.out.println("Title" + "\t" + "Number of" + "\t" + "Number Available"); for (int i = 0; i <= varray.length; i++) { varray[i].print(); } } public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int current = 0, max = 10; video[] varray = new video[max]; video v = new video(); for (int j = 0; j < 3; j++) { v.addVideo(); varray[j] = v; current++; } printAll(current, varray); } }

video.java

1 个答案:

答案 0 :(得分:2)

video v = new video();应该在循环中。否则,您将多次向阵列添加相同的video实例。

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    int current=0, max = 10;
    video[] varray = new video[max];
    for(int j = 0; j < 3; j++) {
        video v = new video();
        v.addVideo();
        varray[j]=v;
        current++;  
    }
    printAll(current, varray);  
}