如何将枚举元素随机化?

问题描述

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

public enum LightColor {
    Green,
    Yellow,
    Red;

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

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

LightColor randomLightColor = LightColor.getRandom();

解决方法

假设您有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));

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

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”