# Array Reihenfolge ändern



## Guest (12. Jan 2009)

hallo leute könnt ihr mir bei folgender Aufgabe helfen,

Erstellen Sie eine Methode reihenfolgeUmkehren(), in welcher die erste zahl mit der letzten, die zweite mit der vorletzten, usw. vertauscht werden.


ps. ist ein Array mit new int[100]; in welchem die ersten 50 Indexe mit Zahlen von 1 bis 50 belegt sind die nächsten fuenzig indexe haben bis jetzt den stadard wert 0

anbei mal mein kleine BlueJ Klasse



/**
 * Beschreiben Sie hier die Klasse ZahlenSammlung.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class ZahlenSammlung
{
    int[] zahlen;
    int anzahl;



    /*
    *public ZahlenSammlung()
    *{ 
    *    zahlen = new int[100];
    *}//end ZahlenSammlung
    *
    */


   //Aufgabe A
   //KOnstruktor int parameter nachträglich entfernt
    public ZahlenSammlung()
    {
      zahlen = new int[100];
      for (int i=0; i<=49;i++){

         zahlen_=i+1;
         anzahl++;
        }//end for
        }//end Zahlensammlung



   //Aufgabe D
      public void alleZahlenAusgeben()
  {
      int startIndex=0;

       do {
               System.out.println(zahlen[startIndex]);
               startIndex++;
          } while (startIndex <= zahlen.length-1);
  }//end alleZahlenAusgeben


  //Aufgabe E
  public void alleZahlenRueckwaertsAusgeben(){
     for(int i=zahlen.length-1;  i>=0;i--){
         System.out.println(zahlen);


    }//end for
    }//end alleZahlenRueckwaertsausgeben



  //Aufgabe H

 //Hier wird die größte Zahl im Array Ausgegeben   
 public int größteZahl() 
     { 
         int max = zahlen[0]; 

         for(int i = 0; i < zahlen.length; i++) 
         { 
             if(max < zahlen) 
             { 
                 max = zahlen; 
                } 
            } 
            return max; 
      }//end größte Zahl




  //Aufgabe O

  public void reihenfolgeUmkehren(){
      int hochzaehlen=0;
     for (int i= zahlen.length-1;i>=0; i--){
     zahlen = zahlen[hochzaehlen++];   

    }//end for

}
      public void reihenfolgeUmkehrenZwei(){
   int hochzaehlen=1;
     int groesteZahl = größteZahl();
     for(int i=0; i<= 49;i++){
     System.out.println(zahlen = zahlen[zahlen.length-hochzaehlen]);
     groesteZahl--;
     hochzaehlen++;
    }
    }//end reihenfolgeUmkehren





}//end class_


----------



## Schreibi (12. Jan 2009)

moin,


```
public void reihenfolgeUmkehren(){ 
    int hochzaehlen=0; 
    for (int i= zahlen.length-1;i>=0; i--){ 
        zahlen[i] = zahlen[hochzaehlen++]; 
    }//end for 
}
```
erstma werden die zahlen doch so gar nit getauscht. dazu müsstest du erst zahlen_ temporär speichern und den gespeicherten wert wieder in zahlen[hochzaehlen] reinschreiben. mmh außerdem für mich sieht das aus als ob du jede Zahl genau zweimal tauschst...du must doch die for schleife gar nicht bis i>=0 laufen lasssen sondern nur bis zur Hälfte des Arrays.
weil so wird im ersten schritt die letzte zahl mit der ersten und im letzten schritt die erste mit der letzten getauscht.
also wird der tausch rückgängig gemacht!



		Code:In die Zwischenablage kopieren


public void reihenfolgeUmkehrenZwei(){ 
    int hochzaehlen=1; 
    int groesteZahl = größteZahl(); 
    for(int i=0; i<= 49;i++){ 
        System.out.println(zahlen[i] = zahlen[zahlen.length-hochzaehlen]); 
        groesteZahl--; 
        hochzaehlen++; 
    } 
}//end reihenfolgeUmkehren


hier fehlt auch irgendwie der tausch der zahlen...so schreibst du nur die hinteren 50 werte in die vorderen 50 arrayplätze._


----------



## 0x7F800000 (12. Jan 2009)

was soll das alles sein, drei seiten voll mit irgendeinem kram, erwartest du von den leuten dass die das alles durchlesen, wobei es nicht mal in code-tags eingeschlossen ist?
Wenn du eine konkrete Frage zu einer konkreten methode hast, dann poste eben nur die frage und nur die methode, den exakten wortlaut der aufgabenstellung und den drei kilometer langen code, der nichts mit der frage zu tun hat kannst du uns gerne vorenthalten, da ist dir keiner böse deswegen^^ :roll:


----------



## HoaX (12. Jan 2009)

eifach org.apache.commons.lang.ArrayUtils.reverse nehmen


----------



## Guest (12. Jan 2009)

ok das mit den überschüssigen methoden werde ich mir merken und künftig ändern, die antwort mit dem org.... Anweisung hört sich ja relativ einfach an aber wenn ich diese Metode aufrufen möchte bekomme ich eine Meldung das das package nicht existiert, gibt es da auch noch eine andere Lösung die ihr mir in meine methode schreiben könnt?


----------



## Gast (12. Jan 2009)

```
for(int i=0; i< zahlen.length / 2;i++){ 
  // schreibe zahlen[i] in eine Hilfsvariable
  // schreibe zahlen[zahlen.length-i] nach vorne
  // schreibe aus der Hilfsvariable nach hinten
}
```


----------



## SegFault (12. Jan 2009)

HoaX hat gesagt.:
			
		

> eifach org.apache.commons.lang.ArrayUtils.reverse nehmen



eigentlich müsste schone das Collections.reverse(..) funktionieren aber ich glaube hier geht es um etwas selbst implementiertes als Hausaufgabe oder ähnliches. Die Formulierung der Aufgabe suggeriert dies. 
Und der ansatz  wurde hier auch schon beschrieben. Obwohl das schon fast zuviel hilfe ist wenns einfach nur eine Hausaufgabe ist.


----------

