Java: Zufälliges Element aus Array nehmen?
Wie kann ich ein zufälliges Element aus je einem Subarray eines mehrdimensionalen Array nehmen?
Mein Code:
public class MyClass {
public static void main(String args[]) {
String[][] sieben = new String[3][5];
String[][] sieben = {
{ "Haus", "Frau", "Killer", "David", "Superman" },
{ "backt", "tanzt", "singt", "arbeitet", "fährt" },
{ "gerne", "schnell", "niemals", "entspannt", "verliebt" }
};
}
}
Danke im Voraus!
3 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Java
Du kannst dir mit der Random-Klasse je Ebene einen zufälligen Index erstellen lassen.
Beispiel, welches ein zufälliges Element aus dem innersten Array ermittelt:
Random zufallsgenerator = new Random();
int x = zufallsgenerator.nextInt(sieben.length);
int y = zufallsgenerator.nextInt(sieben[0].length);
String zufallswert = sieben[x][y];
PS.: Du kannst die Variable sieben lokal nur einmal innerhalb desselben Kontext erstellen.
Mit der Radom Funktion kannst du einen pseudozufälligen Index nehmen.
import java.util.concurrent.ThreadLocalRandom;
public class MyClass {
public static void main(String args[]) {
String[][] sieben = {{"Haus", "Frau", "Killer", "David", "Superman"}, {"backt", "tanzt", "singt", "arbeitet", "fährt"}, {"gerne", "schnell", "niemals", "entspannt", "verliebt"}};
for (String[] arrElement: sieben) {
int randomNum = ThreadLocalRandom.current().nextInt(0, arrElement.length);
System.out.println(arrElement[randomNum]);
}
}
}
Btw. du kannst das zweidimensionale Array "sieben" nicht einfach doppelt definieren ^^'
Statt
int randomNum = ThreadLocalRandom.current().nextInt(0, arrElement.length);
kannst du natürlich auch
int randomNum = (int)(Math.random()*((arrElement.length)));
verwenden, das währe aber nicht so kreativ :P