Wie Sie sich richtig zu erstellen, der eine ArrayList von ArrayLists?

Ich versuche zu erstellen, der eine ArrayList von ArrayLists. Ich möchte 25 ArrayLists und diese ArrayList halten unterschiedliche Werte haben. Mit dem Ziel zu erstellen, die ein sortiertes Wörterbuch mit Wort-Länge.

Mein code sieht wie

    for(int i = 0; i < 25; i++)
         list2D.add(list);
    for(int i = 0; i < stringList; i++)
         list2D.get(stringList.get(i).length()).add(stringList.get(i))

Das problem ist, dass jede Liste enthält die gleichen Werte, nach Abschluss.

Weiß ich, warum das problem passiert ist. "list" ist eine ArrayList, ArrayList ist und Objekte wenn Sie ein Objekt Bearbeiten, dann ist alles enthalten, dass Objekt bearbeitet werden.

Um das problem zu beheben ich habe versucht,

    for(int i = 0; i < 25; i++){
        list = new ArrayList<String>();
        for(int i2 = 0; i2 < stringList.size(); i2++){
            if(stringList.get(i).length() == i)
                list.add(stringList.get(i2));
        }
        list2D.add(list);
    }

Aber wenn ich zum testen meine "list2D"

    for(int i = 0; i < 25; i++)
         System.out.print(list2D.get(i).size()+" ");

Bekomme ich

0 0 0 0 0 58110 0 58110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

und ich habe keine Ahnung, warum...

Es auch relevant sein könnte, um beachten Sie, dass stringList enthält 58110 Werte.

Ich möchte auch nicht zu haben, um 25 verschiedene ArrayLists!

  • sollte nicht Ihre print-die Größe der list2d? I. e. System.out.println(list2d.get(i).size()+" ")
  • danke, aber das war nur ein Tippfehler hier, mein code war in Ordnung.
  • Welche Art ist stringList ? Du hast geschrieben for(int i = 0; i < stringList; i++) und ich sehe nicht, wie das Sinn macht.
  • In Ihrem inneren for-Schleife, Sie haben stringList.get(i).Länge(). Ist stringList 2-dimensional? Was enthält Sie?
InformationsquelleAutor java | 2013-11-03
Schreibe einen Kommentar