比较2个int数组

Spl*_*ter 2 java

任何人都可以告诉我这个方法有什么问题,为什么它会给出nullpointerException?

public boolean check(){

    Scanner scan = new Scanner(System.in);

    int[] arr1 = new int []{1,2,3};
    int[] arr2 = new int[]{};

    for(int i = 0;i<arr1.length;i++)
    {
        System.out.println("Enter numbers to check");
        arr2[i] = scan.nextInt();
    }

    if(arr1 == arr2)
        return true;

    return false;
}
Run Code Online (Sandbox Code Playgroud)

rya*_*ogo 5

你没有分配足够的内存arr2.在这种情况下,arr2初始化为0的长度.

你的第3行应该是这样的:

int[] arr2 = new int[arr1.length];
Run Code Online (Sandbox Code Playgroud)

另外,if(arr1 == arr2)不是比较两个数组是否有相同的元素的正确方法.

相反,您可以使用java.util.Arrays.equals()检查两个数组是否相等.