有 Java 编程相关的问题?

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

在java中如何在空数组中添加元素?

我创建了一个函数,它接受一个数组并输出另一个数组。因此,我将结果数组(将作为输出)声明为null,因为大小不同,并且取决于输入的数组。(例如,如果我输入一个整数数组,然后我想输出包含该数组偶数的数组)。所以我将使用for或while循环,我想知道如何将整数添加到空数组中。我试过了,但是我得到了一个空指针异常,它说不能存储到int数组,因为“数组”是空的

抱歉,我不能使用更高级的技术,因为我是java新手(我需要在不使用arraylist库的情况下完成这项工作,因为我正在学习编码,我发现了这些类型的问题,它们试图让你在特定的主题中达到完美,然后它们会带你进入下一步,这样你就可以做更多准备)

我正在使用这段代码,我想知道,在我的结果数组中添加一个元素,或者我应该将其初始化为null或其他原因,因为大小取决于输入的数组。在这段代码中,我得到了null指针异常

public static int[] even(int[] numbers) {
    int[] result = null;

    int even = 0;
    int i = 0;
    int a = 0;
    while (i < numbers.length) {
        if (numbers[i] % 2 == 0) {
            even = numbers[i];
            result[a] = even;
            a++;
        }
        i++;
    }
    return result;
}

共 (2) 个答案

  1. # 1 楼答案

    public static int[] even(int[] numbers) {
        int[] result = null;
    
        int j = 0;
        int a = 0;
        while (i < numbers.length) {
            if (numbers[j] % 2 == 0) {
                a++;
            }
            j++;
        }
        result = new int[a];
    
        int even = 0;
        int i = 0;
        int b = 0;
        while (i < numbers.length) {
            if (numbers[i] % 2 == 0) {
                even = numbers[i];
                result[b] = even;
                b++;
            }
            i++;
        }
        return result;
    }
    
  2. # 2 楼答案

    数组的大小需要初始化。如果您想要动态存储,请阅读ListCollection

    在这里,如果你仍然想使用数组,你需要计数

    int a = 0;
    while (i < numbers.length) {
        if (numbers[i] % 2 == 0) {
            a++;
        }
        i++;
    }
    

    然后,您可以将其初始化为int[] result = new int[a]