当前位置: 首页 > 知识库问答 >
问题:

如何从枚举中生成随机值并将其放入数组?

方博学
2023-03-14

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

public class InventoryEnums {
    public static void main (String[] args){

    int[] inventar = new int[9] // int array mit 10 Plätzen

    enum items {
        KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ
    }

共有3个答案

西门品
2023-03-14

这不是你想要的吗?

public class App {
    public static void main(String[] args) {
        Random random = new Random();

        enum items {
            KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ
        }

        items[] inventar = items.values();

        int index = random.nextInt(inventar.length);

        System.out.println(inventar[index]);

    }
}
梁丘璞瑜
2023-03-14

枚举应以单数命名,并应以大写字母开头。

enum Item { KARTE, MONSTERBALL, MONSTERDEX, FAHRRAD, VM03, HYPERHEILER, AMRENABEERE, TOPGENESUNG, ANGEL, TOPSCHUTZ }

我建议你努力设计一个比“项目”更具描述性的名字。

通过调用值获取所有枚举对象的数组。

Item[] allItems = Item.values() ;

生成一个随机数。使用该数字作为所有项目数组的索引。

int randomIndex = ThreadLocalRandom.current().nextInt( 0 , allItems.length ) ;  // ( inclusive , exclusive )
Item rando = allItems[ randomIndex ] ;

或者,您可能想随机排序(洗牌)枚举的所有元素。如果是这样,请在阵列的支持下制作一个列表。调用集合。随机播放。对列表所做的更改也会影响备份阵列。因此数组被洗牌。

Item[] allItems = Item.values() ;
List< Item > list = Arrays.asList( allItems );
Collections.shuffle( list );

更简单地说:

Item[] allItems = Item.values() ;
Collections.shuffle( Arrays.asList( allItems ) );

查看此代码在Ideone上实时运行。通用域名格式。

[MonsterBALL, TOPSCHUTZ, KARTE, FAHRRAD, VM03, Monsterdex, ANGEL, AMRENABEERE, TOPGENESung, HYPERHEILER]

卜阳
2023-03-14

您可以获取范围为0到数组的随机整数值。长度为

int rand = new Random().nextInt(items.values().length);

然后,您可以获得使用生成的随机值的枚举

items.values()[rand];

然后在循环中使用它来填充数组。

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

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

  • 问题内容: 如果我有这样的枚举: 随机挑选一个的最佳方法是什么?它不需要是生产质量的防弹产品,但是相当均匀的分配将是不错的选择。 我可以做这样的事情 但是有更好的方法吗?我觉得这是之前已解决的问题。 问题答案: 我唯一建议的是缓存结果,因为每个调用都会复制一个数组。另外,不要每次都创建一个。保持一个。除此之外,您在做什么都很好。所以:

  • 如果我有这样的枚举: 随机挑选的最佳方式是什么?它不需要是生产质量的防弹产品,但一个相当均匀的分布将是很好的。 我可以做这样的事 但是有没有更好的方法呢?我觉得这是以前解决过的问题。

  • 问题内容: 假设您有一些元素 并希望从中随机选择任何颜色。 我把颜色放进去 然后选择一个随机颜色,例如: 所有这些(虽然工作正常)似乎都不必要地复杂。有没有一种简单的方法来选择随机枚举元素? 问题答案: Java的枚举实际上是功能齐全的对象。您可以在声明中添加方法 它将允许您像这样使用它:

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