2013-11-16 2 views
0

Это мой код:Получение ошибки жалуясь моего размера массива

import java.util.Scanner; 

public class Programming_Exercise_27 { 

    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 

     int[] list1 = new int[3]; 
     int[] list2 = new int[3]; 

     System.out.println("Enter 3 numbers for list1: "); 


     for (int i = 0; i < list1.length; i++){ 
      list1[i] = input.nextInt(); 
     } 

     System.out.println("Enter 3 numbers for list2: "); 

     for (int i = 0; i < list2.length; i++){ 
      list2[i] = input.nextInt(); 
     } 

     if(equal(list1, list2) == true){ 

      System.out.println("The two lists are identical"); 
     } 

     else{ 

      System.out.println("The two lists are not identical"); 
     } 
    } 


    public static boolean equal(int[] list1, int[] list2){ 

     boolean decision = true; 
     int hold; 
     int check = 0; 
     int check2 = 0; 

     for (int i = 0; i < list1.length; i++){ 

      hold = list1[i]; 

      for (int x = 0; i < list1.length; x++){ 

       if (list1[x] == hold){ 

        check++; 
       } 
       else { /* do nothing */ } 

      } 

      for (int y = 0; i < list2.length; y++){ 

       if (list2[y] == hold){ 

        check2++; 
       } 
       else{ /* do nothing */ } 

      } 

      if (check != check2){ 

       decision = false; 
       break; 
      } 
      else{ 

       check = 0; 
       check2 = 0; 
       hold = 0; 
      } 
     } 


     return decision; 
    } 


} 

То, что я пытаюсь сделать, это мой равный метод для подсчета возникновения определенного числа в массиве. Если каждое число чисел равно в массивах, это означает, что они идентичны. Но по какой-то причине я постоянно сталкиваюсь с проблемой размера массива. Пожалуйста помоги.

+0

Пожалуйста, используйте форматирование кода для кода, ввода/вывода и структурированных документов, таких как HTML или XML. Для этого выберите образец и нажмите кнопку '{}' над формой отправки сообщений/редактирования. –

+2

«проблема с размером массива» действительно не объясняет проблему - вы получаете исключение? Если да, то где? Также было бы легче воспроизвести проблему, если бы вы избавились от раздела, запрашивающего ввод от пользователя, - просто жесткий код - пример, где он терпит неудачу, и это избавит вас от половины кода ... –

+1

Пожалуйста, сообщение об ошибке. –

ответ

4

Эта линия

for (int x = 0; i < list1.length; x++){ 

должны иметь x вместо i в состоянии, в противном случае x будет только продолжать расти, пока list1[x] убегает в конец массива. Кроме того, эта линия

for (int y = 0; i < list2.length; y++){ 

должны иметь y вместо i.

+0

Какой прекрасный глаз. Спасибо, что сделал код успешным! – user2991463

+0

Не благодарите меня. Вместо этого научитесь использовать отладчик. –

+0

@ user2991463: Пожалуйста, узнайте из этого, что вы должны улучшить свой вопрос, задавая навыки. Ваш вопрос был очень неясным, с невероятно смутным описанием проблемы, с которой вы столкнулись - пожалуйста, прочитайте http://tinyurl.com/so-hints и http://tinyurl.com/so-list –

Смежные вопросы