当前位置: 首页 > 面试题库 >

如何将枚举元素随机化?

单于扬
2023-03-14
问题内容

假设您有enum一些元素

public enum LightColor {
   RED, YELLOW, GREEN
}

并希望从中随机选择任何颜色。

我把颜色放进去

public List<LightColor> lightColorChoices = new ArrayList<LightColor>();

lightColorChoices.add(LightColor.GREEN);
lightColorChoices.add(LightColor.YELLOW);
lightColorChoices.add(LightColor.RED);

然后选择一个随机颜色,例如:

this.lightColor = lightColorChoices.get((int) (Math.random() * 3));

所有这些(虽然工作正常)似乎都不必要地复杂。有没有一种简单的方法来选择随机枚举元素?


问题答案:

Java的枚举实际上是功能齐全的对象。您可以在enum声明中添加方法

public enum LightColor {
    Green,
    Yellow,
    Red;

    public static LightColor getRandom() {
        return values()[(int) (Math.random() * values().length)];
    }
}

它将允许您像这样使用它:

LightColor randomLightColor = LightColor.getRandom();


 类似资料:
  • 我的问题很简单。我有以下几点: 如何从该枚举中选择随机元素?我试着解决这个问题,但没有成功。

  • 微调器板条箱有一个枚举,其中包含大量可能的微调器。 这是枚举(跳过除顶部和底部4之外的所有值): 新微调器易于创建: 但是,我希望随机选择一个微调器,这是行不通的: 因为: 如何随机选择枚举值,并使用该值显示随机微调器?

  • 我正在编写一个二十一点游戏。我有一个所有可用牌类型的枚举。交易时,我想使用Random从枚举中随机选择一张牌给玩家。如何使用整数值对应枚举值?或者,我如何为该枚举的变量随机选择枚举值? 纸牌Enun:

  • 我在python上有一个元素列表,我可以在index.html页面上以下拉列表的形式获得它,并将一个选定的值发送到另一个页面进行处理。问题是如何选择列表中的多个元素。我的意思是只有几个没有或库的元素?

  • 我得到了一个充满“项目”的枚举,我想生成枚举中的一个随机项目并将其放入我的清单中,我用数组制作了清单。数组只有10 int的空间。

  • 我需要java JAVA CODE中此解决方案的delphi解决方案