填充数组中的值

时间:2015-03-10 12:09:51

标签: java arrays

我想要做的是用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;
    }
}

5 个答案:

答案 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];