Wie kann ich ein Array umdrehen?
Moin,
ich soll als Hausaufgabe im Studium diese Methode debuggen.
Sie soll ein Array umdrehen Bsp.: [1, 2, 3] -> [3, 2, 1]
Zuerst hatte die Methode eine OutOfBoundsException, die ich behoben habe. Aber jetzt ändert sie die übergebenen Arrays überhaupt nicht ab.
Vielleicht habt ihr eine Idee.
Viele Grüße.
3 Antworten
(arr.length - 1) in der for-Anweisung gehört jedenfalls in Klammern gesetzt.
Weiter habe ich es noch nicht untersucht.
Die Idee ist richtig. Du willst bis zur Hälfte tauschen und schreibst als Fortsetzungsbedingung
i < arr.length - 1 / 2
Das ist aber (wegen Division vor Subtraktion und Integerarithmetik 1 / 2 == 0) dasselbe wie
i < arr.length
also bis zum Ende.
Richtig wäre
i < arr.length / 2
Das läuft bei gerader Länge bis zur Mitte (z.B. bei Länge 6 bis zum Index 2 einschließlich), bei ungerader Länge tauscht es die Mitte nicht mit sich selbst (z.B. bei Länge 5 bis Index 1 einschließlich, also 0 mit 4 und 1 mit 3).
Oh, lange her, Du musst etwas (ein array) zurück geben.