我目前正在开展一个学校项目,我必须提示多个电影片名,以及每部电影的副本数量,并将它们存储在一个数组中。然而,似乎每次我要求一个新的标题,它写在最后的标题。我目前有两个文件rentalplace.java
和video.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
答案 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);
}