想过来咨询下ArrayList的一个问题
定义了一个“dragon“类,有name,type,HP,attack属性,从文本读取信息后添加到List里面,然后到控制台输出,结果全部显示最后一个dragon实例对象,代码如下:
public static void main(String[] args) {
List<Dragon> pet = new ArrayList<Dragon>();
FileReader file = null;
BufferedReader bfread = null;
try{
file = new FileReader("f:\\dragon.csv");
bfread = new BufferedReader(file);
String content = null;
bfread.readLine();
while((content = bfread.readLine()) != null) {
//这里后面加了一句System.out.println(content)输出没问题,证明读取内容无误
Dragon dragon = new Dragon();
String[] arr = content.split(",");
dragon.setName(arr[0]);
dragon.setType(arr[1]);
dragon.setHP(Double.parseDouble(arr[2]));
dragon.setAttack(Double.parseDouble(arr[3]));
pet.add(dragon);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
for(Dragon x : pet) {
System.out.println(x.getName()+""+x.getType()+""+x.getHP()+""+x.getAttack());
}
}
后来我在while循环里面第一句加了System.out.println(content),结果所有实例化对象都能显示也就是文本读取内容没问题,就是把实例对象add到LIST里面去之后再遍历list输出就全部显示最后一个实例对象了,郁闷中,求大神解释解释。