首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让java做随机操作的更好的方法?

让java做随机操作的更好的方法?
EN

Stack Overflow用户
提问于 2016-10-19 00:54:23
回答 2查看 93关注 0票数 0

事情是这样的。最近我一直在做一个类似人工智能的项目。我想做的是,我会得到一个0到300之间的随机数,我必须根据这个数字做一个随机的事情。

现在我可以用

代码语言:javascript
复制
switch(/*number b/w 0-300*/){
case 0:
case 1:
so on to 300

我尝试过IF

但我认为一定有更好的方法来做这件事,因为要做很多这样的案子需要花费很长的时间。

编辑:我想提一下,所有这些情况都是无效的,所以我不知道如何用列表来实现它们。我在java 7,不能改为java 8,所以界面很难管理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-19 01:15:58

列出要从中选择的东西。

代码语言:javascript
复制
List<Choice> choices = new List<Choice>();
choices.add(something);
choices.add(somethingElse);
...
Choice random = choices.get(new Random().nextInt(choices.size()));
票数 0
EN

Stack Overflow用户

发布于 2016-10-19 01:14:29

您可以为所有“随机事物”定义一个接口:

代码语言:javascript
复制
interface AIAction {
    public void execute();
}

然后在数组中收集所有这些操作的实现。我选择使用lambda实现每个AIAction,但这最终取决于您:

代码语言:javascript
复制
static AIAction[] actions = new AIAction[] {
    () -> {System.out.println("a");},
    () -> {System.out.println("b");},
    () -> {System.out.println("c");}
};

在此之后,您可以执行这样的随机操作:

代码语言:javascript
复制
Random rand = new Random();
int index = rand.nextInt(actions.length);
actions[index].execute();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40120366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档