В этом методе я пытаюсь сравнить все элементы в одном arraylist со всеми элементами в другом. Тогда, если элемент в первом arraylist не равен ни одному элементу во втором arraylist, удалите этот элемент. Что-то не так на этапе сравнения или удалении, но я не уверен, что. Любая помощь будет принята с благодарностью.Сравнение одного arraylist с другим и удаление дополнительных элементов java
Если вы хотите уточнить, не стесняйтесь спрашивать.
public static ArrayList<Integer> compareArrayandList(ArrayList<Integer>compare, ArrayList<Integer>array2) {
int[] counter = new int[compare.size()];
for (int x: counter) {
x = 0;
}
for (int i = 0; i < compare.size(); i++) {
counter[i] = 0;
for (int number: array2) {
if (compare.get(i) ==number) {
counter[i]++;
}
}
}
for (int i=0; i<counter.length;i++) {
if (counter[i]==0) {
compare.remove(new Integer(i));
}
}
return compare;
}
EDIT: (любезно Memento Mori) Причины ваш код не работает в том, что позиции в вашем ArrayList изменяется при удалении элемента. Допустим, вы удалили элемент 3. Теперь элемент 3 отличается от предыдущего.
Я предполагаю, что это какая-то домашняя работа. В противном случае я бы предложил использовать list1.retainAll (list2) - он делает именно то, что вы хотите. –