sortiertes Array im main aufrufen klappt nicht.

Dieses Thema sortiertes Array im main aufrufen klappt nicht. im Forum "Allgemeine Java-Themen" wurde erstellt von loveDJ, 30. Dez. 2016.

Thema: sortiertes Array im main aufrufen klappt nicht. Hallo zusammne :) Bin noch absolut frisch hier im Forum sowie auch in Java. Ich stehe zur Zeit vor einem...

  1. Hallo zusammne :)
    Bin noch absolut frisch hier im Forum sowie auch in Java.
    Ich stehe zur Zeit vor einem kleinenProblem und finde keine Lösung die funktioniert. Ich wollte eine Methode schreiben die ein int-Array übergeben bekommt und dieses dann sortieren soll. Soweit klappt das auch
    Code (Text):
    int[] meinArray = { 1, 5, 3, 9, 7, 22};
    static int[] sortieren (int[] meinArray){
      Arrays.sort(meinArray);
      return meinArray;
    }
    Jetzt wollte ich im Hauptprogramm bzw main-Programm meine Methode aufrufen und dann das sortierte Feld ausgeben lassen und genau da liegt mein Problem. Eigentlich dachte ich das man Methoden im main-Programm nur mit dem Namen aufruft, also
    Code (Text):
    sortieren( meinArray );
    aber das funktioniert leider nicht. Bei einer anderen Methode die ich vorher zum Test geschrieben habe ging es aber
    Code (Text):
    static void greet(){
      System.out.println( " Hallo Welt ");
    }

    public static void main( String[] args){
      greet();
    }
     
    Jetzt frage ich mich warum ich meine sortieren-Methode nicht auch einfach so aufrufen kann? Liegt das an dem Parameter und dem static? Verträgt sich das irgendwie nicht? Ich hab schon einiges im Buch "Java ist auch eine Insel" nachgelesen und bei google geschaut, jedoch hab ich keine passende Lösung für meinen Fall gefunden.

    Hoffe ihr könnt mir etwas weiterheflen :)

    MfG
     
  2. Vielleicht hilft dir das Java-Tutorial weiter. Hier klicken --> (Klick)
  3. Moin und willkommen im Forum. :)

    Der Fehler wird eher was mit deinem Array zu tun haben. Man kann in einer static Methode nur static Variablen benutzen.
    Daher musst du dein Array auch als static deklarieren und dann sollte alles passen.

    Gruß
    Robert
     
  4. Ich glaube mein Fehler war das ich das Array nicht im Main-Programm initialisiert habe. Habs jetzt im main drinne und der Fehler ist weg, jedoch bekomme ich eine absolut kryptische Ausgabe obwohl kein Fehler angezeigt wird. Mein Programm sieht jetzt wie folgt aus:
    Code (Text):
    static int[] sortieren( int[] meinArray ){
           
            Arrays.sort( meinArray );
            System.out.println( meinArray );
            return meinArray;
           
        }
    public static void main( String[] args){
    int[] meinArray = { 1, 5, 3, 9, 7, 22};
            System.out.println();
            sortieren(meinArray);
    }
    Anscheinend ist es rein formal richtig aber die Ausgabe sieht so aus: [I@3acff49f
    Ich weiß nun absolut nicht woran das liegt... Ist irgendein Datentyp falsch oder fehlerhaft??
     
  5. Was du dir dort ausgeben lässt ist die Speicheradresse des Arrays.
    Bei der System.out.println(); Methode wird implizit die toString() Methode aufgerufen.

    Wenn du dir das Array ausgeben lassen willst machst du das entweder über System.out.println(Arrays.toString(arrayname)); oder über eine for-Schleife die durch das Array läuft.
     
  6. Schau dir jetzt hier den Kurs an und lernen Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)