我正在尝试创建一个随机数以添加到数组(arr)。我四处寻找答案,但它们似乎都不起作用或已经过时。这是我尝试过的:
int[] arr = {};
int rand = (int) Math.round(Math.random() * 100);
arr = append(arr, rand);
但是,这似乎不起作用,因为 append 下有一条红线,上面写着“方法 append(int[], int) 未定义用于 new ActionListener(){} 类型”。帮助将不胜感激!
您将首先像这样声明您的数组:
整数 [] arr;
你知道你将存储多少个整数吗?
arr = new int[10];
然后,您将使用 for 循环遍历数组中的每个元素。
for (i=0; i<10; i++) {
int rand = (int) Math.round(Math.random() * 100);
arr[i] = rand;
}
希望这可以帮助。
您不能“附加”到数组:尽管 Java 中的数组元素是可变的,但数组的长度是在创建时设置的,以后不能更改。
如果您需要一个可以改变大小的集合,请使用ArrayList<Integer>添加任意数量的元素;之后,您可以将列表转换为数组。
在 Java 中,数组是固定长度的,因此您不能动态附加到它们。
如果要将内容附加到列表中,则应使用Arraylist.
List<Integer> arr = new ArrayList<Integer>();
int rand = (int) Math.round(Math.random() * 100);
arr.add(rand);
没有办法将元素“附加”到数组中。您必须创建一个具有适当大小的新数组,复制所有旧元素并插入新元素。另一种方法是使用 ArrayList。
为什么不使用列表?
List<Integer> arr = new ArrayList<Integer>();
int rand = (int) Math.round(Math.random() * 100);
arr.add(rand);
默认情况下,Java 编译器会在与您调用它们的位置相同的类中查找方法。在这种情况下,它似乎是一个匿名ActionListener类,所以它在哪里寻找append(int[], int)方法,但它找不到它。
回到你想要达到的目标。原始类型数组(如您int[]所愿)没有任何方法。所以我们需要一点帮助。
首先,我们可以List<Integer>使用将数组转换为 a Arrays.asList(T...)。接下来,我们可以int通过调用将新的 s 添加到该列表中List.add(E)。int[]最后,我们可以通过调用将该 List 转换回List.toArray(T[]). 合而为一,看起来像这样:
int[] arr = {};
List<Integer> list = Arrays.asList(arr);
list.add((int) Math.round(Math.random() * 100));
arr = list.toArray(arr);
我创建了一个名为 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;
}