sortiertes Array im main aufrufen klappt nicht.

Diskutiere sortiertes Array im main aufrufen klappt nicht. im Allgemeine Java-Themen Forum; 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...

  1. loveDJ
    loveDJ Neues Mitglied
    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 dieser Kurs hier weiter --> (hier klicken)
  3. Robat
    Robat Bekanntes Mitglied
    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. loveDJ
    loveDJ Neues Mitglied
    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. Robat
    Robat Bekanntes Mitglied
    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.
     
Die Seite wird geladen...

sortiertes Array im main aufrufen klappt nicht. - Ähnliche Themen

Sortiertes Array mischen ohne Duplikat
Sortiertes Array mischen ohne Duplikat im Forum Java Basics - Anfänger-Themen
Sortiertes Einfügen in doppelt verkettete Liste
Sortiertes Einfügen in doppelt verkettete Liste im Forum Allgemeine Java-Themen
Dynamisches und sortiertes Auslesen von Properties
Dynamisches und sortiertes Auslesen von Properties im Forum Allgemeine Java-Themen
Lineare Listen: sortiertes Einfügen
Lineare Listen: sortiertes Einfügen im Forum Java Basics - Anfänger-Themen
unsortiertes Treeset
unsortiertes Treeset im Forum Allgemeine Java-Themen
Thema: sortiertes Array im main aufrufen klappt nicht.