Wie kann man den Inhalt eines Arrays mischen?
Im Beispiel wird eine Methode deklariert, die ein Array als
Parameter übernimmt und dies in vermischter Form wieder
zurück gibt. Aufgerufen wird sie direkt in der main-Methode.
In arrayMix() werden zunächst zwei lokale int-Variablen
deklariert, von denen eine einen Pseudo-Zufallswert speichert. Er
wird durch die Methode nextInt() erzeugt, die zur Klasse java.util.Random
gehört. In einer Schleife, die das gesamte Array
durchläuft wird dieser Wert bei jedem Durchlauf erneut
gebildet. Er besteht aus einem positiven ganzzahligen Wert zwischen
0 und der Array-Länge - 1. Somit besteht der gelieferte Wert
aus einem im Array vorhandenen Index.
Der Wert des dem
Schleifendurchlauf entsprechenden Array-Eintrags wird in der zweiten
Variablen zwischengespeichert und der Wert des zufällig
indizierten Eintrags an dessen Stelle gesetzt. Die Zufallsposition
wiederum erhält den zwischengespeicherten Wert.
import java.util.Random;
public class Array_mischen {
private static int[] arrayMix(int[] zahlen) {
int tmp;
int rand;
Random r = new Random();
for (int i = 0; i < zahlen.length; i++) {
rand = r.nextInt(zahlen.length);
tmp = zahlen[i];
zahlen[i] = zahlen[rand];
zahlen[rand] = tmp;
}
return zahlen;
}
public static void main(String[] args) {
int[] zahlen = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
zahlen = arrayMix(zahlen);
for (int i : zahlen)
System.out.println(i);
}
}
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.