此方法从具有相同地址字段的列表中删除重复对象。它目前对我有用。但我正在升级我的应用程序,我希望我的 ArrayLists 变得更大。(200 多个对象)
例如,我担心比较 200 条记录可能太慢,因为它是 O(n2)
我该如何改进它。
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;
}
编辑
感谢大家的一致回答。我有一个最终问题。当我覆盖它们时,hashcode 和 equals 方法中有什么?