# Feld in umgekehrte Reihenfolge bringen



## Java-Anfänger (20. Jan 2005)

Hi! 

Ich soll eine Methode schreiben, die ein Feld in die umgekehrte Reienfolge bringt, ohne ein weiteres Feld zu erzeugen. Also aus z.B a b c d   =>  d c b a;   Gibt es einen java.util.Array Befehl? Oder wie löse ich dies am elegantesten?? 

Vielen Dank im Voraus :lol:


----------



## stev.glasow (20. Jan 2005)

Bestimmt sollt den Algorithmus selber implemtieren.
Guck mal hier http://www.google.de/search?hl=de&q=sortieralgorithmen&spell=1


----------



## mic_checker (20. Jan 2005)

ich glaub er meint jetzt keinen Sortieralgo oder (u.U. kommt es einem Sortieren gleich aber nicht immer) ?

So weit ich dich verstanden hab,willst du folgendes:

Feld a ursprünglich:

[a0] [a1] [a2] [a3] [a4]

-> Nachher:

[a4] [a3] [a2] [a1] [a0]

Hast du schon nen Ansatz?

Ist eigentlich nicht so schwer, wenn man sich obiges Schema mal genauer anguckt....


----------



## stev.glasow (20. Jan 2005)

stimmt sortiren ist quatsch, aber wie man das ohne ein weiters Feld  machen soll weiß ich auch nicht.


----------



## stev.glasow (20. Jan 2005)

eigentlich lösen wir heir keine Hausaufgaben:
aber was hälts davon, habs nicht getestet:


```
int[] arr ={1,2,3};
        
        for(int i = 0; i < arr.length; i++){
            int tmp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = tmp;
        }
```

[edit]
ah ne stuss was mach ich, der code sollte nicht gehen, aber da hast du mal nen Ansatz


----------



## mic_checker (20. Jan 2005)

Also ich hab nen Ansatz:

a[0] a[1] a[2] a[3]

Im obigen Beispiel würde die Vorgehensweise so aussehn:

Hilfsvariable = a[3]
a[3] = a[0]
a[0] = Hilfsvariable
....
Hilfsvariable = a[2]
a[2] = a[1]
a[1] = Hilfsvariable
....

Wenn du es so machst musst du nur von hinten das array nach vorne durchlaufen und ne andere zählvariable noch deklarieren (die von 0....array.length-1 zählt).
Dann brauchst du auch nicht das ganze Array zu durchlaufen, nach 2 Durchläufen bist fertig.


----------



## Bleiglanz (21. Jan 2005)

java.util.Arrays asList

java.util.Collections reverse(List list)

dann wieder toArray


----------



## stev.glasow (21. Jan 2005)

Das das ne Hausaufgabe ist sollen die das bestimmt selber austüffeln.


----------



## Bleiglanz (21. Jan 2005)

hatten wir doch schon mal, zwei Variablen tauschen ohne Hilfsvariable

```
int[] arr = new int[]{0,1,2,3,4,5,6,7};
for(int i=0, n=arr.length;i<n/2; i++) {
	arr[i] = arr[n-i-1] + 0 * (arr[n-i-1]=arr[i]);
}
```


----------



## thE_29 (21. Jan 2005)

Und jetzt soll der Fragesteller das mal erklären


----------



## kopfsalat (21. Jan 2005)

Alternative ohne Hilfsvariable (mit 3-fachem XOR) ;-)


```
int[] arr = new int[]{0,1,2,3,4,5,6,7};
for(int i=0, n=arr.length;i<n/2; i++) {
   arr[i]     = arr[n-i-1] ^ arr[i];
   arr[n-i-1] = arr[n-i-1] ^ arr[i];
   arr[i]     = arr[n-i-1] ^ arr[i];
}
```


----------



## mic_checker (21. Jan 2005)

Prinzipiell gehts auch ohne Hilfsvariable, aber ich denke als Anfänger ist die andere Variante verständlicher.
Selbst wenn die Methode reverse() vorhanden ist, ich denke es ist ne nette kleine Fingerübung das selber zu machen.
Eigentlich sollte das ganze bisher gepostete reichen um das zu realisieren....


----------



## Java-Anfänger (23. Jan 2005)

Hi! Vielen Dank, für eure Anregungen. War keine Hausaufgabe, aber ihr habt mir sehr geholfen. Ist ja doch wirklich nicht so schwer wie ich am Anfang gedacht habe. Vielen Dank + Gruß


----------

