我需要从控制台获取两个1-D阵列以进行比较练习。用户输入的第一个数字被指定为数组的长度。
当我尝试提交第二个数组的数字时,我的代码会抛出错误。 谢谢!
public static boolean Equals( int [] list1, int[] list2)
{
if( list1.length != list2.length) return false;
for (int i = 0; i < list1.length ; ++i)
if (list1[i] != list2[i] ) return false;
return true;
}
public static void main (String[]args)
{
Scanner input = new Scanner( System.in);
//Prompt user for input
int[] list1 = null, list2 = null;
System.out.print("Enter list1: ");
int x = input.nextInt();
int []length = new int [x];
for (int i = 0; i < list1.length ; i++) {
x += list1[i];
System.out.print("Enter list2: ");
for (int j = 0; j < list2.length; j++) {
x += list2[j];
}
if ( Equals (list1, list2))
System.out.print("Two lists are strictly identical");
else
System.out.print("Two lists are not strictly identical");
}
答案 0 :(得分:0)
您引用list1
和list2
时未指定null
以外的值,因此您应该在此行获得NullPointerException
:
for (int i = 0; i < list1.length ; i++) {
其次,不要使用自定义equals
方法(并在方法命名上观察Java code conventions - Java!= C#)。
请改用Arrays.equals
。