# Zufallszahlen sortieren



## McCartney95 (6. Mai 2012)

Hallo liebe Community,

ich arbeite an einem Applet welches Lottozahlen ziehen soll. Ich habe es erstmal so programmiert, dass es zwei zieht, das Prinzip ist ja dasselbe, ich will es nur übersichtlich halten.

Soweit so gut.

Jetzt jedoch, will ich, dass es die Zahlen im textfield geordnet ausgibt. Selbstverständlich hab ich gegoogelt, aber trotzdem bin ich nicht weitgekommen, ich habe es mit Arrays.sort(); probiert aber auch so funktioniert es nicht. Den Rest fand ich zu kompliziert weil das alles Klassen waren und ich keinen blassen Schimmer wie ich das reinbekommen soll.

Hier ist der Code;


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 06.05.2012
  * @author
  */

public class Lotto extends JApplet {
  int[] Zufall= new int[2];
  private JButton jButton1 = new JButton();
  private JTextField jTextField1 = new JTextField();
  // Ende Attribute

  public void init() {
    Container cp = getContentPane();
    cp.setLayout(null);
    cp.setBounds(0, 0, 300, 201);
    // Anfang Komponenten

    jButton1.setBounds(8, 16, 273, 57);
    jButton1.setText("Lottozahlen ziehen");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    jButton1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jTextField1.setBounds(8, 96, 273, 49);
    cp.add(jTextField1);
    // Ende Komponenten

  }
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
  Zufall [1]=Integer.parseInt(String.valueOf(Math.round(Math.random()*(49))));
  Zufall [0]=Integer.parseInt(String.valueOf(Math.round(Math.random()*(49))));
  jTextField1.setText(String.valueOf(Zufall [0]+" "+Zufall [1]));
  }

  // Ende Methoden

}
```

So funktioniert es normal, nur nicht geordnet.


```
jTextField1.setText(Was muss hier rein damit es geordnet ausgegeben wird?);
```

Wäre dankbar für eure Hilfe.

LG McCartney95


----------



## ARadauer (6. Mai 2012)

Ich würd das sortieren der Zahlen und das Bauen des Ausgabe Strings einfach aufteilen...


```
int[] zufall =  zufallsZahlenErmitteln();
zahlenSortieren(zufall);
String ausgabe = intArrayToString();
jTextField1.setText(ausgabe);
```

das ist der sinn beim Programmieren... probleme in kleine teilprobleme zerlegen...
und nicht
jTextField1.setText(Was muss hier rein damit es geordnet ausgegeben wird?);

zufallsZahlenErmitteln, zahlenSortieren, intArrayToString diese Methoden gibts natürlich nicht... die musst du selber schreiben... 
wo genau hast du da probleme?


----------



## Gast2 (6. Mai 2012)

Und was genau hat an Arrays.sort() nicht funktioniert. Das klappt:

```
int[] zahlen = {1,4,2,6,3};
Arrays.sort(zahlen);
System.out.println(Arrays.toString(zahlen));
```


----------



## xehpuk (6. Mai 2012)

Doch, doch, mit 
	
	
	
	





```
Arrays.sort()
```
 kann man ein Array sortieren. Mit 
	
	
	
	





```
Arrays.toString()
```
 gibts eine schöne Textausgabe.

Und was soll denn 
	
	
	
	





```
Integer.parseInt(String.valueOf(Math.round(Math.random()*(49))));
```
? So kriegt man eine Zufallszahl:

```
final Random r = new Random();
final int i = r.nextInt(49);
```
Zahlen dürfen übrigens nur einmal gezogen werden.


----------



## Final_Striker (6. Mai 2012)

McCartney95 hat gesagt.:


> ich habe es mit Arrays.sort(); probiert aber auch so funktioniert es nicht



"Funktioniert nicht" nicht wirklich eine aussagekräftige Problembeschreibung.


----------



## McCartney95 (6. Mai 2012)

EikeB hat gesagt.:


> Und was genau hat an Arrays.sort() nicht funktioniert. Das klappt:
> 
> ```
> int[] zahlen = {1,4,2,6,3};
> ...



Vielen Dank! 

ich habe immer  Arrays.sort(Zufall []); gemacht weshalb es nicht funktioniert hat.


----------



## Landei (6. Mai 2012)

Wenn man Zahlen nur einmal haben will, eine Liste mit den Zahlen von 1 bis 49 füllen, Collection.shuffle aufrufen und die ersten sechs nehmen.


----------

