从列表中选择随机数

时间:2015-07-29 07:41:52

标签: java android

我有3个变量的列表:(abc)。如果有一些条件,有没有办法从这个列表中随机挑选?让我们说:

if(some variable=2)
{
    pick one variable from the list
}
if(some variable=4)
{
    pick 2 variables from the list
}
..
and here comes the tricky part

if(some variable=10)   
{
    pick 5 variables out of the list( here the variables can duplicate)

    it can be something like this : a,a,a,b,b
}

我正在使用Java for Android。

3 个答案:

答案 0 :(得分:1)

只需创建一个生成随机数的方法,并使用它从列表中获取元素。从每个if语句中调用它,这应该可以解决问题。喜欢的东西(这只是一个想法):

private Object random() {
    Random random = new Random();
    int index = random.nextInt(3);
    return yourList.get(index);
}

答案 1 :(得分:0)

如果您使用的是数组或arrayList,则需要使用Random对象。

ArrayList<String> yourArrayList = new ArrayList<>();
yourArrayList.add("a");
yourArrayList.add("b");
yourArrayList.add("c");
Random randomGenerator = new Random();
int index = randomGenerator.nextInt(yourArrayList.size());
String item = yourArrayList.get(index);

答案 2 :(得分:0)

我希望这可以帮到你。这段代码适用于java。如果您在Android上,只需忽略扫描仪并根据需要传递变量。我使用Scanner只是从控制台获取输入。

import java.util.Random;
import java.util.Scanner;
public class Select{
    Random r = new Random();
    public Select(int num){
        int a;
        char [] list = {'a', 'b', 'c'};
        a=num/2;
        char [] show = new char [a];
        int [] rand = new int [a];
        for(int i=0;i<a;i++){
            rand[i]=r.nextInt(3);
        }
        for(int i=0;i<a;i++){
            show[i]=list[rand[i]];
        }
        for(int i=0;i<a;i++){
            System.out.println(show[i]);
        }
    }
    public static void main(String args[]){
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a no.");
        int no = scan.nextInt();
        Select s = new Select(no);

    }
}