我有3个变量的列表:(a
,b
,c
)。如果有一些条件,有没有办法从这个列表中随机挑选?让我们说:
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。
答案 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);
}
}