2012-05-17 2 views
0

ArrayList 사용하는 데 문제가 있습니다. 먼저 자바를 처음 사용하는데 객체를 저장하기 위해 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 방법 중 일부는 다른 호출이 가능하다 -

1) 귀하의 목록에 같은 요소를 포함 :

+2

무엇이 잘못되었는지 로그를 인쇄하는 것이 좋습니다. 귀하가 게시 한 코드에서 아무도 결과 문자열의 출처를 알 수 없습니다 (나는'toString() '중 하나라고 추측하고 있습니다.) – user845279

답변

2

는 두 가지 가능성이있을 수 있습니다. 예를 들어, u.toString()은 그 안의 a.toString() 또는 a.toString()을 호출합니다. t.toString()

+0

돈 메이트에 대한 의례입니다. , 그러나 귀하의 두 번째 옵션 참조로, 나는 클래스로 돌아가서 iterator를 사용하여 toString()에 아이템 목록을 보았다. 이제 모든 것이 작동한다. – babygau