int-Array mit Zufallszahlen füllen

  • Themenstarter Themenstarter qbic
  • Beginndatum Beginndatum
Q

qbic

Gast
Hallo,

ich möchte einem int-Array Zufallszahlen von 1 bis 12 zuweisen, die innerhalb des Arrays nur einmal vorkommen sollen.

Java:
int[] array = new int[12];
for(int i=0;i<12;i++) {
  array[i] = (int) (Math.random() * 12 + 1);
  System.out.print(array[i]+" ");
}

Was muss ich noch machen?


Google und SuFu haben nicht wirklich geholfen.
 
Eleganterweise lässt sich das Problem mit "nur einmal vorkommen" mit der Collection HashSet, da diese keine Doubletten zulässt. Also sowas:

Code:
	int[] array = new int[12];
		Set<Integer> set = new HashSet<Integer>();
		int zahl;
                        while(set.size() < 12) {
			zahl = (int) (Math.random() * 12 + 1);

			if (set.add(zahl)) {
				System.out.println(set.size());
				array[set.size()-1] = zahl;
				set.add(zahl);
			}
		}	
		System.out.println(Arrays.toString(array));

Die while-Schleife iteriert solange nicht 12 Elemente vorhanden sind. Die if-Bedingung prüft, ob die Zahl dem HashSet hinzugefügt werden konnte und falls ja, wird diese dem HashSet und auch dem array hinzugefügt.
 

Neue Themen


Zurück
Oben