2014-10-28 89 views
-1

我需要从控制台获取两个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

你错过了一个'}' – 2014-10-28 11:17:27

回答

0
  • 您参考list1list2不分配它们比null以外的值,因此,你应该在这条线得到一个NullPointerException

    for (int i = 0; i < list1.length ; i++) { 
    
  • 其次,不要用自定义equals方法(并在方法命名 - Java!= C#上观看Java code conventions)。 改为使用Arrays.equals