【问题标题】:Adding ints to an array in Java在Java中将整数添加到数组中
【发布时间】:2013-07-17 11:32:05
【问题描述】:

我正在尝试创建一个随机数以添加到数组 (arr)。我四处寻找答案,但它们似乎都不起作用或已过时。这是我尝试过的:

int[] arr = {};
int rand =  (int) Math.round(Math.random() * 100);
arr = append(arr, rand);

但是,这似乎不起作用,因为在 append 下有一条红线,上面写着“对于 new ActionListener(){} 类型的方法 append(int[], int) 是未定义的”。非常感谢您的帮助!

【问题讨论】:

标签: java arrays random int append


【解决方案1】:

你不能“追加”到一个数组:虽然Java中的数组元素是可变的,但数组的长度是在创建时设置的,以后不能改变。

如果您需要一个可以改变大小的集合,请使用ArrayList<Integer> 附加任意数量的元素;之后,您可以将列表转换为数组。

【讨论】:

  • #append 可能是一种创建具有足够大小的新数组并附加任何需要附加的方法;然后返回的是对新数组的引用
【解决方案2】:

没有办法将元素“追加”到数组中。您必须创建一个具有适当大小的新数组,复制所有旧元素并插入新元素。 另一种方法是使用 ArrayList。

【讨论】:

    【解决方案3】:

    在 Java 中,数组是固定长度的,所以你不能动态追加到它们。

    如果您想将内容附加到列表中,您应该使用Arraylist

    List<Integer> arr = new ArrayList<Integer>();
    int rand =  (int) Math.round(Math.random() * 100);
    arr.add(rand);
    

    【讨论】:

      【解决方案4】:

      为什么不使用列表?

      List<Integer> arr = new ArrayList<Integer>();
      int rand =  (int) Math.round(Math.random() * 100);
      arr.add(rand);
      

      【讨论】:

        【解决方案5】:

        默认情况下,Java 编译器会在与您调用它们的位置相同的类中查找方法。在这种情况下,它似乎是一个匿名的ActionListener 类,因此它会在此处查找append(int[], int) 方法,但找不到。

        回到你想要达到的目标。原始类型数组(就像您的 int[] 一样)没有任何方法。所以我们需要一点帮助。

        首先,我们可以使用Arrays.asList(T...) 将数组转换为List&lt;Integer&gt;。接下来,我们可以通过调用List.add(E) 将新的ints 添加到该列表中。最后,我们可以通过调用List.toArray(T[]) 将该列表转换回int[]。合而为一,看起来像这样:

        int[] arr = {};
        List<Integer> list = Arrays.asList(arr);
        list.add((int) Math.round(Math.random() * 100));
        arr = list.toArray(arr);
        

        【讨论】:

          【解决方案6】:

          你首先要像这样声明你的数组:

          int[] arr;

          你知道要存储多少个整数吗?

          arr = new int[10];

          然后您将使用 for 循环遍历数组中的每个元素。

          for (i=0; i<10; i++) {
            int rand = (int) Math.round(Math.random() * 100);
            arr[i] = rand;
          }
          

          来自Arrays (Java Docs)

          希望这会有所帮助。

          【讨论】:

          • 不用担心。这是我对 stackoverflow 的第一个贡献,我很高兴能提供帮助。如果您不确定数组的长度,最好使用 ArrayList 对象,正如其他用户所建议的那样。
          【解决方案7】:

          我创建了一个名为 generaterandomInt 的函数。

          private float generateRandomInt(int min, int max) {
              return min + (max - min) * random.nextInt();
          }
          

          现在你只需要在你的循环中实现它

          for (i=0; i<10; i++) {
            int rand = generateRandomInt(0, 100);
            arr[i] = rand;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-07-15
            • 1970-01-01
            • 1970-01-01
            • 2012-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多