方式一,利用hashset不能新增重複資料的特性 由於hashset不能保證新增順序,所以只能作為判斷條件:
private
static
void
removeduplicate(listlist)
}list.clear();
list.addall(result);
}
方式二,利用linkedhashset不能新增重複資料並能保證新增順序的特性 :
private
static
void
removeduplicate(listlist)
方式三,利用list的contains方法迴圈遍歷:
private
static
void
removeduplicate(listlist)
}list.clear();
list.addall(result);
}
準備測試程式:
private
static
void
main(string args)
long time = system.currenttimemillis();
for (int i = 0; i < 10000; i++)
long time1 = system.currenttimemillis();
system.out.println("time1:"+(time1-time));
for (int i = 0; i < 10000; i++)
long time2 = system.currenttimemillis();
system.out.println("time2:"+(time2-time1));
for (int i = 0; i < 10000; i++)
long time3 = system.currenttimemillis();
system.out.println("time3:"+(time3-time2));
結果為:
time1:329
time2:292
time3:17315
總結:從便捷以及效率上,方式二是最佳選擇,具體原因可以參考hashmap的儲存方式 對List中物件的去重
今天專案中遇到了乙個對list中物件去重的問題。首先對於我們自己系統中的物件我們只要重寫該物件的 equal 和 hashcode 即可 利用物件中的能夠唯一確定物件的屬性 但是我遇到的不是本系統的物件,而是另乙個系統中的物件,我本身是無法對其進行重寫的。我的處理方法是遍歷list,利用map un...
如何對list集合物件去重
我們知道,list集合是乙個元素有序,可重複的集合,集合中每個元素都有對應的順序索引,我們通過索引進行取值賦值 那麼,當list集合中的元素為多個屬性組成的物件時,如何對list集合進行去重 因為物件是在記憶體中開闢一塊區域進行儲存,每個物件的值哪怕相同,但只要是你新new出來的,代表的也是不同的物...
對List中物件的去重
今天專案中遇到了乙個對list中物件去重的問題。首先對於我們自己系統中的物件我們只要重寫該物件的 equal 和 hashcode 即可 利用物件中的能夠唯一確定物件的屬性 但是我遇到的不是本系統的物件,而是另乙個系統中的物件,我本身是無法對其進行重寫的。我的處理方法是遍歷list,利用mapniq...