我想要做的是用add()方法填充空的aray kyo [],但它一直出错:
线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException: 0在TestPlass.Add(TestPlass.java:30)at TestPlass.main(TestPlass.java:18)
我刚接触编程
public static int size = 30;
public static void main (String args[]) {
int kyo[] = {};
Add(kyo);
for(int x:kyo){
System.out.print(x + " ");
}
}
static void Add(int x[]){
for(int g=0; g<=size; g++){
x[g] = g;
}
}
答案 0 :(得分:0)
空数组永远不会拥有任何内容。
创建数组后,其大小是固定的 - 您可以更改元素的内容,但不能更改它具有的元素数。有关详细信息,请参阅Java arrays tutorial。
如果您需要动态调整大小的集合,建议您使用List<E>
实施,例如ArrayList<E>
:
List<Integer> list = new ArrayList<>();
add(list);
for (int x : list) {
System.out.print(x + " ");
}
...
private static void add(List<Integer> list) {
// I assume you want "size" elements, not "size + 1"
for (int g = 0; g < size; g++) {
list.add(g);
}
}
答案 1 :(得分:0)
这一行:
int kyo[] = {};
创建一个大小为零的数组。数组在Java中具有固定的大小;一旦创建了一个数组,它的大小就是固定的。你必须像这样创建数组:
int[] kyo = new int[30];
这将创建一个包含30个元素的数组。
答案 2 :(得分:0)
您需要在创建数组时给出数组的大小,例如:
int kyo[] = new int[size];
您可以在这里找到关于数组的一些很棒的信息: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
数组不会自动调整大小,因此初始化它的大小将永远是它的大小。
干杯, 马库斯
答案 3 :(得分:0)
如果您的kyo数组具有更小的尺寸,则需要使用此尺寸创建它。
public static int size = 30;
public static void main(String args[]) {
int kyo[] = new int[size];
add(kyo);
for (int x : kyo) {
System.out.print(x + " ");
}
}
static void add(int x[]) {
for (int g = 0; g < x.length; g++) {
x[g] = g;
}
}
您添加函数接收int x[]
作为输入,因此它应该使用x.length
作为迭代器而不是您的大小变量。
我还将Add()
方法的名称编辑为add()
以尊重Java代码约定。
答案 4 :(得分:0)
你的问题在于:int kyo[] = {};
{}创建零大小的数组。由于要向数组添加31个元素,因此需要将数组初始化为适当的大小。
例如:int[] kyo = new int[31];