有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java随机数生成与数组

我一直在为我的第一个文本冒险游戏创建一个随机元素生成器,更具体地说,这是:

    Random Generation = new Random();
    List<Integer> interact = new ArrayList<Integer>();
    for (int generator = Generation.nextInt(5) + 3; generator > 0; generator--) {
        interact.add(Generation.nextInt(10));
    };
    System.out.println(interact);

在这里,生成器定义了元素的数量,并将其作为一个列表进行交互,该列表包含表示不同交互对象的随机数,问题是,我需要元素不要重复

我在int a = Generation.nextInt(3); if (a != interact[]) {interact.add(a)} else {generator++};中思考,但我不知道如何在比较数组时设置[any]


共 (2) 个答案

  1. # 1 楼答案

    IIRC您的要求是:

    • 游戏必须有一个大小为3 <= numberOfItems <= 8的“元素列表”。其中numberOfItems每次必须随机化
    • “元素列表”必须正好包含0到10之间的numberOfItems个随机整数

    这个怎么样

        Random generator = new Random();
        Set<Integer> interact = new HashSet<Integer>();
        int numberOfItems = generator.nextInt(5) + 3;
        while (interact.size() < numberOfItems) {
            interact.add(generator.nextInt(10));
        }
    

    它将继续向interact添加不同的元素,直到达到指定的容量numberOfItems

  2. # 2 楼答案

    通过以下方式修改for循环:

    for (int generator = Generation.nextInt(5) + 3; generator > 0; generator ) {
            int randomedNumber = 0;
            do {
              randomedNumber = Generation.nextInt(10);
            } while(interact.contains(randomedNumber))
            interact.add(randomedNumber);
    };
    

    你随机一个数字,如果它在一个列表中-你再次随机,如果它不是-你把它添加到列表中,然后继续下一个,非常简单