int-Array mittels Arrays.sort() in einer Schleife sortieren.

staaaudi

Mitglied
Hey Liebe Community,

ich hab jetz die SuFu genutzt, aber komm i.wie nich richtig auf genau das was ich suche.
Ich habe ein Array mit 6 Zahlenwerten. Diese möchte ich gerne sortieren. Die Zahlenwerte werden per rnd in das Array eingetragen, in einer Schleife.

So weit so gut, ich bekomme 6 Zahlen die er mir auch ausgibt. Allerdings würde ich die Zahlen gerne sortieren. Einfach aus kosmetischen Gründen.

Mein Code sieht aktuell so aus:
Java:
public class Lotto {

    public static void main(String[] args) {
        int[] ziehung = new int[6];
        for (int i=0;i<ziehung.length;i++) {
            ziehung [i] = simuliereZiehung();
            Arrays.sort(ziehung);
            System.out.println(ziehung[i]+" ");
        }
    }
  
    public static int simuliereZiehung() {
        int rnd = (int)(Math.random() * 49) + 1;
        return rnd;
    }

}

Wenn ich das aber an die Stelle so schreibe, sortiert er mir zwar Zahlen, aber keine Ahnung was das für welche sein sollen. Er gibt mir meist 3 führende 0 aus und dann noch Zahlen, die entweder 2 oder 3 mal vorkommen.

Was genau mach ich denn falsch? Wo muss die Zeile denn hin, oder vergesse ich was grundlegendes bei dem Befehl?

Für eine schnelle Antwort wäre ich sehr dankbar 🙂
 
Zuletzt bearbeitet von einem Moderator:
Ich hab deinen Code etwas umgeändert.

Wo siehst du den Unterschied?
Warum geschieht die Sortierung nach der Schleife?
etc.

für folgende Code erhalte ich die angehängte Ausgabe

Java:
import java.util.Arrays;

public class Lotto {
  public static void main(String[] args) {
      int[] ziehung = new int[6];

      for (int i=0;i<ziehung.length;i++)
      {
          ziehung [i] = simuliereZiehung();
          System.out.println(ziehung[i]+" ");
      }

      Arrays.sort(ziehung);

      System.out.println("");
      System.out.println("Sortiert");
      System.out.println("");

      for(int i = 0; i<= ziehung.length-1;i++)
      {
           System.out.println(ziehung[i]);
      }

  }

  public static int simuliereZiehung()
  {
      int rnd = (int)(Math.random() * 49) + 1;
      return rnd;
  }
}


24
38
22
37
21
21

Sortiert

21
21
22
24
37
38
 
Zuletzt bearbeitet von einem Moderator:
Du überschreibst dein Array in der Schleife immer wieder und gibst nur die i-te Zahl aus.
Du könntest stattdessen dein Array mittels Arrays.toString(dein_Array) in ein String umwandeln und ausgeben. Alternativ kannst du auch eine weitere schleife um die Ausgabe packen.
 

Zurück
Oben