2014-01-13 5 views
-3

Цель этой программы - взять два массива x и y, а затем создать и список массива содержать числа, которые встречаются как в x, так и в y, а затем распечатать этот массив совпадающих чисел. Когда я иду на компиляцию, он дает мне класс ошибки, ожидаемый в строке 19, и еще одну ошибку, говорящую «;» ожидаемый в той же строке, которая, как я предполагаю, связана с другой ошибкой. Это просто ошибка на этой линии или это большая проблема?Использование метода contains

import java.util.ArrayList; 
import java.util.Arrays; 
public class FindCommon { 

    public static void main (String[] args) { 

     ArrayList list = new ArrayList(); 



     int[] x = {1, 4, 3, 0, 1, 2}; 
     int[] y = {6, 4, 5, 0, 6, 1}; 


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

      int number = x[i]; 

      if (y[].(contains(x[i])){ // Line 19 

       list.add(x[i]);   
      } 

      System.out.println(list); 

     } 
    } 
} 
+1

Скажите 'if (y.contains (x [i]))' вместо – devnull

+0

Извините, забыл упомянуть, что я уже пробовал это и просто проверил его сейчас. Он приходит с ошибкой: не может найти символ символ: метод содержит (int) местоположение: переменная y типа int [] – user3189610

ответ

6

if (y[].(contains(x[i])){

выше линия является недопустимой для различных причин. Индекс для массива y отсутствует. Также в соответствии с требованием вам нужно вызвать метод contains() в списке, а не массив. И, похоже, есть дополнительная пара фигурных скобок.

if (!list.contains(x[i])){ 
    list.add(x[i]); // Add to the list if it doesn't contain the value already 
} 

Вы должны сделать то же самое для элементов y тоже.

Вы можете использовать Set вместо List. Это устранит дубликаты для вас. Все, что вам нужно сделать, это просто добавить элементы к вашему набору из обоих массивов.

+0

И есть дополнительная '('. Кроме того, это, возможно, точка 'Set' интерфейс и его реализации. –

+0

@TJCrowder - Да, это тоже, и я собирался добавить лучшее решение для использования 'Set'! :) Спасибо! :) – SudoRahul

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