2015-02-16 5 views
1

Пользователь должен ввести два массива (массив a и массив b), а затем массивы должны пройти через метод, чтобы увидеть, содержат ли они одни и те же элементы в некотором порядке, игнорируя дубликаты.Проверьте, имеют ли два массива одинаковые элементы в некотором порядке

У меня возникают некоторые проблемы, хотя я продолжаю получать метод «Не могу найти символ - метод содержит (int [], int)» ошибку в методе sameSet().

Может ли кто-нибудь сказать мне, почему это происходит, и указать мне в правильном направлении?

/** 
* check whether two arrays have the same elements in some order, ignoring 
* duplicates. For example, the two arrays 1 4 9 16 9 7 4 9 11 and 11 11 7 9 
* 16 4 1 would be considered identical. 
*/ 

public static boolean sameSet(int[] a, int sizeA, int[] b, int sizeB) { 
    boolean sameSets = true; 

    for (int i = 0; i < a.length; i++) { 
     if (!contains(b, a[i])) { // This line right here is where I'm having trouble. I get "Cannot symbol - method contains (int[], int)" 
      sameSets = false; 
     } 
    } 
    for (int i = 0; i < b.length; i++) { 
     if (!contains(a, b[i])) { // This line also has the same problem as the above. 
      sameSets = false; 
     } 
    } 
    return sameSets; 
} 


// main method used to collect user input, then pass input to sameSet method 

    public static void main() { 

    final int LENGTH = 10; 
    int sizeA = 0; 
    int sizeB = 0; 
    int a[] = new int[LENGTH]; 
    int b[] = new int[LENGTH]; 

    Scanner input = new Scanner(System.in); 
    Scanner in = new Scanner(System.in); 

    System.out.println("Please fill up values for array a, Q to quit: "); 
    while (input.hasNextInt() && sizeA < a.length) { 
     a[sizeA] = input.nextInt(); 
     sizeA++; 

    } 

    System.out.println("Please fill up values for array b, type in Q to quit: "); 
    while (in.hasNextInt() && sizeB < b.length) { 
     b[sizeB] = in.nextInt(); 
     sizeB++; 
    } 
    for (int i : b) { 
     System.out.print(i + " | "); // For testing 

    } 

    sameSet(a, sizeA, b, sizeB); 

} 

ответ

1

Из каждой матрицы можно создать HashSet, а затем использовать set1.equals(set2).

0

Говорят, что метод «содержит» не существует. В вашем коде нет «содержать метод».

+0

заказа не имеет значения, в соответствии с OP, поэтому Arrays.equals() не будет работать. –

+0

А, ну, я удалю эту часть, но по-прежнему сохраняется, что его метод contains не существует. – Connorelsea

+0

Правда, он на самом деле просит нас реализовать этот метод. –

0

содержит ??? согласно мне нужно либо объявить этот метод или нужно использовать наборы, где «содержит» предоставляются в качестве действительных операций

лучше использовать наборы для вашего требования

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