Das Codesegment:einer verschachtelten Schleife für Java-Tracing
ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> inner = new ArrayList<Integer>();
int count = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
count++;
inner.add(count);
}
outer.add(inner);
}
System.out.println(outer);
I die Schleife wie folgt verfolgen: wenn i = 0
wird inneren zum [1, 2, 3]
aktualisiert werden. Daher wird outer
[[1, 2, 3]]
sein.
Bei i = 1
wird inner
auf [1, 2, 3, 4, 5, 6]
aktualisiert. Daraus ergibt sich die output
die outer
ist, wird [[1, 2, 3], [1, 2, 3, 4, 5, 6]]
jedoch sein, wenn ich das Programm ausführen, das output
ist eigentlich [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
.
Warum ist das so?
Dank
Ich habe die
Sie fügen ** das gleiche ** Array jedes Mal hinzu. –
Die Codes sind völlig nutzlos. Du fügst 'inner' zu 'inner' immer hinzu (was nicht einmal kompiliert wird, da 'inner 'keine Ganzzahl ist und daher nicht in sich passt), ohne etwas anderes hinzuzufügen. Es werden niemals Nummern hinzugefügt. Was Sie sagen, passt nicht zu Ihrem Code. Korrigieren Sie Ihren Code. –
Warum "inner" zu "inner" hinzufügen? Bitte versuchen Sie zu denken atleast –