2012-05-17 106 views
0

我遇到了使用ArrayList的问题。首先,我是Java的新手,我试图使用ArrayList来存储对象,现在我想打印出所有物品是ArrayList的物品。但不知何故,List打印出来不正确,有重复的项目(我敢肯定,只有他们中的一个项目)。这里是我的代码:打印arraylist元素问题

StringBuilder description = new StringBuilder(); 
    for (Unit u: diary.getUnitCollection()){ 
     for (AssessmentItem a: u.getAssessmentCollection()){ 
      for (Task t: a.getTaskCollection()){ 
       description.append(t.toString()); 
      } 
      description.append(a.toString()); 
     } 
     description.append(u.toString()); 
    } 

,这是结果,你可以看到,他们正在复制:

Java-Ass1 
Java-Ass2 
Java-Ass1 
Java-Ass2 

如果我打印UnitCollection只,其显示正常,但类似这样的格式[ item,..],我想知道for循环中的错误。

+2

我建议你打印一个日志来找出什么是错的。从你发布的代码,没有人可以知道结果字符串来自哪里(我假设其中的一个'toString()'。 – user845279

回答

2

有可能只存在两种可能性:

1)您的列表包含相同的元素 - 它没有设置并且可以
2)你的一些方法的toString调用另一个。例如u.toString()调用里面的a.toString()或a.toString()调用t.toString()

+0

你对伴侣的礼貌。我在我头上的方式超过了for循环,但作为你的第二选择参考,我回到了课堂上,看到我使用迭代器在toString()中列出了它的项目,现在全部都可以使用。 – babygau