# Array umdrehen



## jacka (14. Aug 2011)

Hallo ich habe hier eine Methode die ein Array übergeben bekommt und in ein neues Array(int [] array) umgekehrt kopieren soll. Nur leider gibt es mir bei einem übergebenen Array: {1,2,3,4,5,6,7} nur 7,6,5,4,3,2,7 aus also statt dem letzten 7er sollte ein 1er hin. 


```
public static int[] dreheArrayUm(int[] zahlen)throws Exception {
		
		if(zahlen == null){
			throw new Exception("Array darf nicht null sein");
		}
		if(zahlen.length == 1 || zahlen.length == 0){
			return zahlen;
		}
		int[] array = new int[zahlen.length];
		
		for(int i = 0; i < array.length-1; i++){
		
		int j = zahlen.length-i;
		array[zahlen.length-i-1] = zahlen[i];
		zahlen[i] = j;
		}
		return array;

		
	}
```


----------



## Tonxxx (14. Aug 2011)

speicher doch einfach die letzte zahl in ein integer und kopier sie am schluss in das letzte array rein....


----------



## XHelp (14. Aug 2011)

So auf anhieb sieht die Zeile 13 falsch aus. 
	
	
	
	





```
j
```
 sollte wohl den Wert 
	
	
	
	





```
array[zahlen.length-i-1]
```
 annehmen.

Nachtrag: bei Tausch im selben Array musst du auch natürlich darauf achten, dass du nur die Hälfte der Zahlen vertauschst, sonst stellst du ja wieder beim 2. Tausch die ursprüngliche Anordnung her

Und noch ein Eintrag: ich glaube du hattest schon mal in einem anderen Thread auch ...throw Exception:
Für solche Sachen bietet sich [JAPI]RuntimeException[/JAPI] an, zum es da schon eine [japi]IllegalArgumentException[/japi] gibt.


----------



## ThreadPool (14. Aug 2011)

Tonxxx hat gesagt.:


> speicher doch einfach die letzte zahl in ein integer und kopier sie am schluss in das letzte array rein....



Oder er macht es "vernünftig"...


```
int[] array = new int[zahlen.length];
        for(int i = 0, j = zahlen.length-1; i < zahlen.length; i++, j--){
        	array[i] = zahlen[j];
        }
```


----------

