0

の使用に問題がありArrayListます。まず、Javaを初めて使用し、オブジェクトを格納するために使用しようとしています。ArrayList次に、のアイテムであるすべてのオブジェクトを印刷したいと思いますArrayList。しかし、どういうわけか、List印刷が不適切で、重複したアイテムがあります(それらのアイテムは1つだけであると確信しています)。これが私のコードです:

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ループの何が問題になっているのかを知りたいです。

4

1 に答える 1

2

次の 2 つの可能性しかありません。

1)リストに同じ要素が含まれています-設定されておらず、可能です
2)toStringメソッドの一部が別のメソッドを呼び出しています。たとえば、u.toString() が内部で a.toString() を呼び出すか、a.toString() が t.toString() を呼び出します。

于 2012-05-17T22:23:04.800 に答える