보다 효과적이되도록 ArrayList에서 중복 제거하는이 메서드를 향상시킬 수 있습니다이 메서드는 같은 주소 필드를 가진 목록에서 중복 개체를 제거합니다. 그것은 나를 위해 지금 당장 작동합니다. 하지만 난 내 응용 프로그램을 업그레이 드하고 ArrayLists 더 큰 기대하고있다. (200 개체)어떻게하면 O (n2)
이는 O (N2) 나는 그것을 개선 할 수있는 방법
때문에 나는, 그것은 예를 들어 200 개 기록을 비교 너무 느린 수 있습니다 걱정입니다.
public static ArrayList<Place> removeDuplicates(ArrayList<Place> masterList) {
ArrayList<Place> tempList = new ArrayList<Place>(masterList);
for (int i = 0; i < tempList.size(); i++) {
String address = tempList.get(i).getAddress();
for (int j = 0; j < tempList.size(); j++) {
String address2 = tempList.get(j).getAddress();
if (address.equalsIgnoreCase(address2) && i != j) {
tempList.remove(tempList.get(j));
}
}
}
return tempList;
}
편집
감사 만장일치 답변에 대한 모든. 나는 finasl 질문이있다. 내가 그들을 타고 갈 때 hashcode와 equals 메서드는 어떻게됩니까?
이 반복자없이 ArrayList''에서 항목을 제거하지 마십시오 결과를 인쇄 할 수 있습니다. – Maroun
메트릭을 사용하여 애플리케이션에서 병목 현상이 있음을 입증하기 전에이를 향상시키지 마십시오. (* 물론, @ MarounMaroun의 충고 * 다음을 제외하고). –