Array vertauschen von 2 Elementen

Heda

Mitglied
Hi,
ich lass mir durch diesen Code ein Array mit zufälliger Reihenfolge ausgeben:
Code:
for(int i = 0; i < travel.length; i++) {
            System.out.print(travel[i] + " ");
        }

und es kommt zB 9 0 3 2 1 7 5 4 8 6 raus.

Nun möchte ich zB Position 0 und 1 miteinander vertauschen. In diesem Fall die 9 und die 0.
Dafür habe ich das geschrieben:
Code:
for(int j = 0; j < travel.length; j++) {
            int swap = travel[0];
            travel[0] = travel[1];
            travel[1] = swap;
            System.out.print(travel[j]+ " ");
        }

Jedoch werden die Positionen nicht vertauscht sondern die eine kopiert den Wert der anderen. Dann kommt nämlich 0 0 3 2 1 7 5 4 8 6 raus.
Kann mir jemand sagen wo der Fehler hier liegt? Es sollte in diesem Fall 0 9 3 2 1 7 5 4 8 6 rauskommen.
 
Versuche mal deinen Code nachzuvollziehen:
Im ersten Durchlauf der Schleife tauscht du den Inhalt des ersten und zweiten Elements. Anschließend wird das Erste ausgegeben (in diesem Fall 0). Im zweiten Durchlauf tauscht du wieder das erste und zweite Element und gibst das Zweite aus (wieder die 0, weil wieder getauscht). Bei allen weiteren Durchläufen werden zwar wieder das erste und zweite Element getauscht, aber die Ausgabe betrifft nur noch die folgenden Elemente, die nicht verändert werden.
 

Zurück
Oben