java无法计算数组列表的输出
这可能是一个愚蠢的问题,但它让我感到沮丧。我在循环期间将一个对象添加到数组列表中,但在循环之外,所有数组列表都会被数组中的最后一个元素覆盖。事情是这样的
while(fin.hasNextLine())
{
String line = fin.nextLine();
String[] user = line.split(",");
r.add(new User(user[0], user[1]));
System.out.println(r.get(count).getName());
count++;
}
在循环过程中,这给了我类似这样的输出(USER1、USER2、USER3等)。 然而,在循环之后,我现在有了这样的输出(USER500,USER500,USER500)
while(fin.hasNextLine())
{
String line = fin.nextLine();
String[] user = line.split(",");
r.add(new User(user[0], user[1]));
System.out.println(r.get(count).getName());
count++;
}
for (int i =0; i < r.size(); i++)
{
System.out.println(r.get(i).getName());
}
我设法验证了这就是我遇到问题的类,并且只有一个其他方法使用我注释掉的这个类中的数组列表
# 1 楼答案
我将不得不戴上我的心理调试护目镜,但我预测你的
User
课程看起来是这样的:注意
name
是静态的。因此,这是一个变量,而不是每个实例的User
。您希望它是一个实例字段,这样每个User
对象都有一个不同的名称变量