Meine Array-Liste soll eine Linie von Sternchen vor und nach jedem Auftreten der kleinsten Zahl enthalten. Ich habe debugged und alle Variablen halten die korrekten Werte, aber aus irgendeinem Grund addiert es nicht die Werte.ArrayList nicht Elemente hinzufügen
Hier ist mein Code:
int smallest = array[0];
for (int i = 0; i < size; i++)
if (array[i] < smallest)
smallest = array[i];
String smallestString = String.valueOf(smallest);
ArrayList<String> list = new ArrayList<String>();
for(int i = 0;i < size; i++)
list.add(Integer.toString(array[i]));
for (int i = 0; i < list.size(); i++)
if (smallestString.equals(list.get(i))) {
list.add(i, "*****");
list.add(i + 2, "*****");
}
System.out.println("\n" + list);
return smallest;
Versuchen Sie Loops mit '{' '}' Blöcke begrenzen, wird es weniger Fehler sein -anfällig . – Berger
Beachten Sie, dass Sie, wenn Sie von vorne nach hinten iterieren, größere Schritte ausführen müssen, da das Hinzufügen von Elementen alles nach dem aktuellen Element nach rechts verschiebt, dh wenn Ihre Liste "1,2,3" ist und dann '*' bei Index 0 und 2 ergeben '*, 1, *, 2,3' und das nächste Element (' 2') befindet sich jetzt bei Index 3. – Thomas
@Thomas Deshalb habe ich 2 hinzugefügt, wenn ich die zweite Zeile hinzufüge von Sternchen. –