이 방법에서는 한 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;
}
편집 : (메멘토 모리의 제공) 코드가 작동하지 않는 이유는 당신이 요소를 제거 할 때의 ArrayList의 위치가 변화하고 있다는 점이다. 이제 요소 3을 제거했다고 가정 해 보겠습니다. 이제 요소 3은 이전과 다릅니다.
나는 이것이 일종의 숙제라고 생각합니다. 그렇지 않으면 list1.retainAll (list2)을 사용하는 것이 좋습니다. 원하는대로 정확하게 수행합니다. –