Android проверить, есть ли в Arraylist другой Arraylist? - PullRequest
0 голосов
/ 16 января 2020

Я не уверен, что я делаю неправильно, я попробовал почти все решения от SO, и они не работают правильно. У меня есть несколько ArrayList<Integer>, которые я пытаюсь сравнить с другим ArrayList<Integer>, но код продолжает сообщать мне, что совпадения нет, даже когда я непосредственно создаю совпадение.

private ArrayList<Integer> list_of_twos = new ArrayList<Integer>(Arrays.asList(2,2,2));
public int getValue(Arraylist<Integer> currentList){
   if (currentList.contains(list_of_twos)) 
   {
       return 6;
   }
}

Я создание currentList в моем oncreate на данный момент для тестирования, подобного этому

private ArrayList<Integer> testCurrentList = new ArrayList<>();
testCurrentList.add(2);
testCurrentList.add(2);
testCurrentList.add(2);

int value = getValue(testCurrentList);

Я пробовал containsall, но затем он также дает мне ложные срабатывания.

1 Ответ

0 голосов
/ 16 января 2020

Метод ArrayList.contains(Object) возвращает true, если объект параметра найден между элементами ArrayList. Поскольку у вас есть ArrayList из Integer, но вы передаете в качестве аргумента ArrayList<Integer>, функция всегда будет возвращать false, поскольку она сравнивает целые числа с полным массивом.

Для решения проблемы вы можете использовать .equals() method: if (currentList.equals(list_of_twos))

Или вы можете реализовать свою собственную функцию сравнения, используя al oop (или stream) для перебора элементов одного массива и сравнения их с другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...