2016-10-29 10 views
-2

Hallo Ich versuche, mehr als eine Zeichenfolge zufällig aus dieser Liste von ArraysWie wählt man mehr als eine Zeichenfolge aus Arraylist zufällig?

import java.util.Random; 
public class RandomSelect { 

    public static void main (String [] args) { 

     String [] arr = {"A", "B", "C", "D"}; 
     Random random = new Random(); 

     // randomly selects an index from the arr 
     int select = random.nextInt(arr.length); 

     // prints out the value at the randomly selected index 
     System.out.println("Random String selected: " + arr[select]); 
    } 
} 
+2

Verwenden Sie eine Schleife? Wie oft möchten Sie ein zufälliges Element auswählen? –

+0

Mögliches Duplikat von [Take n zufällige Elemente aus einer Liste ?] (Http://stackoverflow.com/questions/4702036/take-n-random-elements-from-a-liste) – Joe

Antwort

1

zwei oder mehr Strings von einer zufällig auszuwählen Array, würde ich eine for-Schleife in Kombination mit zwei generierten Ganzzahlen verwenden. Eine zufällige Ganzzahl zum Auswählen eines Elements im Zeichenfolgenarray und die andere zum Bestimmen, wie oft die for-Schleife ausgeführt wird, indem für jedes Schleifenelement ein Element ausgewählt wird.

String [] arr = {"A", "B", "C", "D"}; 

Random random = new Random(); 
int n = 0; 
int e = 0; 

//A random integer that is greater than 1 but not larger than arr.length 
n = random.nextInt(arr.length - 2 + 1) + 2; 

//loops n times selecting a random element from arr each time it does 
for(int i = 0; i < n; n++){ 
    e = random.nextInt(arr.length); 
    System.out.println("Random String selected: " + arr[e]); 
} 
0

Wenn ich Sie richtig verstanden zu wählen, dann denke ich, die Sie gerade

laufen wieder
// randomly selects an index from the arr 
int select = random.nextInt(arr.length); 

// prints out the value at the randomly selected index 
System.out.println("Random String selected: " + arr[select]); 

. Es wird einen anderen zufälligen String aus dem Array auswählen und ausdrucken.

0

Wenn Sie Daten wollen Blick auf zufälliger Reihenfolge, aber nicht gleiches Element peek zweimal, können Sie nur zufällig Ihre Daten neu ordnen und es dann in üblichen Schleife verarbeiten

List<String> data = Arrays.asList("A", "B", "C"); 
Collections.shuffle(data) 
for (String item: data) { 
    ... 
} 
Verwandte Themen