0
请原谅我,因为我是新手。 我的代码读取数字和名称的文本文件。每个名字后面有3组数字,每组3个放入一个数组中。当数组被发送到循环中的另一个类时,数组的内容会被覆盖,我假设它只是引用数组的地址,而不是实际值。阵列被覆盖的内容
public void readMarksData(String fileName) throws FileNotFoundException
{
File dataFile = new File(fileName);
Scanner scanner = new Scanner(dataFile);
int[] marks = new int[3];
scanner.nextLine();
int i = 0;
while(scanner.hasNext())
{
String studentName = scanner.nextLine();
while(i < 3)
{
try
{
marks[i] = scanner.nextInt();
i++;
}
catch (InputMismatchException ex)
{
i=0;
}
}
scanner.nextLine();
storeStudentRecord(studentName, marks);
//scanner.nextLine();
i=0;
}
scanner.close();
}
代码在其他类
private void storeStudentRecord(String name, int[] marks)
{
//int[] x = new int[3]
StudentRecord student = new StudentRecord(name, marks);
marksList.add(student);
}
构造方法在另一类存储值
public StudentRecord(String nameInput, int[] marksInput)
{
// initialise instance variables
name = nameInput;
noOfMarks = 0;
marks = marksInput;
}
这已被我逼疯了好几个小时,因此任何帮助将不胜感激,谢谢。
你重复使用相同的阵列。别。 Java传递引用,所以你最终得到一个'ArrayList',其中每个元素指向同一个内存位置。 –
另外,考虑使用“对象”而不是数组。 –
尝试移动行int [] marks = new int [3];'在外'while循环中 –