java - 返回数组

标签 java arrays

我是编程和 Java 的新手,正在尝试编写一个程序,将两个数组作为输入并报告它们的总和。我想通过创建一个类来实现这一点,该类将两个数组作为构造函数输入,然后创建一个将它们相加的方法和一个打印出这个新总和数组的方法。

这是我的类(class):

public class test1 {
    int [] a;
    int [] b;
    int [] final23;

    public test1 (int x [], int y [])
    {
        int [] a = x;
        int [] b = y;
    }

    public int [] sum(int [] x, int[] y)
    {
    int [] a = x;
    int [] b = y;
    for (int i = 0; i < Math.min(x.length, y.length); i++)
    {
        final23 [0]=x[0] + y[0] ;

    }
    return final23;
    }

    public void print()
    {
    for (int i = 0; i < final23.length; i++)
    {
        System.out.println(final23[0]);
    }
    }

}

这是我的主要类(class):

public class main1 {
    public static void main(String[] args)
    {
        int l[] = {4,7,2};
        int k[] = {4,6,2};
        test1 X = new test1(k,l);

        X.sum(k,l);
        X.print();
    }
}

当我运行这个时,我总是收到错误:

Exception in thread "main" java.lang.NullPointerException
at test2.sum(test2.java:17)
at main1.main(main1.java:8)

我想我真正想要的是让我的 sum 方法将 test1 对象作为输入。但是,我不知道该怎么做。

最佳答案

您的变量 final23 从未被初始化。 在 Java 中,您必须在使用数组之前对其进行初始化。您要么在声明期间执行此操作(就像您对 k 和 l 所做的那样),要么您稍后必须使用新的 arrayType[arraySize];

执行此操作

这是声明/初始化数组的方式。

int[] iArray = {1, 2, 3}; //Declaration, Initialization, set values


int[] iArray; //Declaration
iArray = new int[3]; //Initialization
iArray[0] = 1; //Set value

int[] iArray; //Declaration
iArray = new Array[3]{1, 2, 3}; // Initialization and set values

对于最后两个示例,您当然可以将初始化与声明放在同一行。


试试这个(清理过的)代码:

public class test1 {
    int[] final23;

    public int[] sum(int[] x, int[] y) {
        final23 = new int[Math.min(x.length, y.length)];
        for (int i = 0; i < final23.length; i++) {
            final23[i] = x[i] + y[i];

        }
        return final23;
    }

    public void print() {
        for (int aFinal23 : final23) {
            System.out.println(aFinal23);
        }
    }


    public static void main(String[] args) {
        int l[] = {4, 7, 2};
        int k[] = {4, 6, 2};
        test1 x = new test1();

        x.sum(k, l);
        x.print();
    }
}

资源:

关于java - 返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688258/

相关文章:

javascript - 通过分组 camelCase 属性创建对象

python - astropy.io 适合大表的高效元素访问

Java 通配符和泛型方法

java - 如何使用新的computeIfAbsent函数?

java - 使用多个正则表达式: Print One Match at a Time in Order They are Seen

java - Findbugs通过参数或clone()分配字节数组值

c - 数组的默认值是多少?

java - JPA2 一对多空联接表

java - 监听器如何在 Java 中工作,它们位于何处,内存管理是什么?

java - 如何重新排列数组以使空值占据数组的开头?