想过来咨询下ArrayList的一个问题

startianshi 2016-08-27 11:10:58
定义了一个“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输出就全部显示最后一个实例对象了,郁闷中,求大神解释解释。
...全文
316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
startianshi 2016-08-29
  • 打赏
  • 举报
回复
引用 7楼zhangscheng922 的回复:
完全复制你的代码,没问题啊
那估计是我eclipse的问题了
  • 打赏
  • 举报
回复
完全复制你的代码,没问题啊
王胖胖_ 2016-08-28
  • 打赏
  • 举报
回复
看了一下代码,楼主这样是会丢掉第一行的数据的
startianshi 2016-08-28
  • 打赏
  • 举报
回复
@静默QL
这是我的数据源,如果源有问题最后一行肯应也不能输出


这是我在while循环第一句加了System.out.println(content)的输出,验证数据的读取结果,证明没有问题


这是最终的输出结果,我觉得问题应该出在ArrayList元素添加这个环节,但又找不出具体在哪里。

静默QL 2016-08-28
  • 打赏
  • 举报
回复


楼主,查下你自己写的文件。代码没任何问题,可能是你的文档有问题。。
NewMoons 2016-08-28
  • 打赏
  • 举报
回复
楼上说的很对,具体位置在:

bfread.readLine();//把这句话注释了,因为readLine已经读了一行,所以第一行会被漏掉。
while ((content = bfread.readLine()) != null) {
startianshi 2016-08-28
  • 打赏
  • 举报
回复
引用 3楼NewMoons 的回复:
楼上说的很对,具体位置在:

bfread.readLine();//把这句话注释了,因为readLine已经读了一行,所以第一行会被漏掉。
while ((content = bfread.readLine()) != null) {
我就是不需要第一行的内容,第一行只是一个标题,第二行开始才是需要的信息。
王胖胖_ 2016-08-27
  • 打赏
  • 举报
回复
不会吧?有全部源代码不

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧