我在Android应用程序中使用了很多这样的功能。
public String class5e() {
String[] data = {
"barbarian",
"bard",
"cleric",
"druid",
"fighter",
"monk",
"paladin",
"ranger",
"rogue",
"sorcerer",
"warlock",
"wizard"
};
return data[randInt(0, data.length)];
}
这对我的大多数应用程序来说都很棒,但是我需要做更多的事情,例如我想让它在每次选择向导选项时添加到向导数据库中,我可以制作一个wizzard将向导作为字符串返回并执行所有数据库的函数等,以便在选择向导时执行需要完成的操作....只有这样才能工作,如果我这样做,那么在数组时设置向导代码无论选择哪个选项,都会被处理。
我可以使用开关和案例,但是你必须对案件数量进行硬编码,因此没有机会动态地调整列表(我的长期目标)以及它为每个选项引入了大量额外的文本。与if语句相同的问题。
有没有办法随机选择一个选项列表并根据需要执行代码,如果选择某些选项,那么简单而有效?
答案 0 :(得分:0)
你有很多选择
让我列出我所知道的内容
import java.util.*;
import java.lang.*;
import java.util.concurrent.ThreadLocalRandom;
class Rextester
{
public static void main(String args[])
{
String[] data = {
"barbarian",
"bard",
"cleric",
"druid",
"fighter",
"monk",
"paladin",
"ranger",
"rogue",
"sorcerer",
"warlock",
"wizard"
};
//Option 1
Random random = new Random();
String strRandom = data[random.nextInt(data.length)];
System.out.println("item [1]: "+ strRandom);
//Option 2
strRandom = data[ThreadLocalRandom.current().nextInt(data.length)];
System.out.println("item [2]: "+ strRandom);
//Option 3
strRandom = data[(int)(Math.random()*data.length)];
System.out.println("item [3]: "+ strRandom);
}
}
检查我的实验:http://rextester.com/KTD88460
评论后编辑
如果您正在寻找动态增长的内容,请使用ArrayList
或查看Collection Framework以选择一个。