重複資料快速去重方法哪家好?

2021-09-16 19:04:44 字數 1476 閱讀 9356

1for迴圈遍歷:

實現思路:使用兩個for迴圈遍歷集合所有元素,然後進行判斷是否有相同元素,如果有,則去除。這種方式是大部分最先想到的,也是最簡單的實現方式。其中,這種方式可以保證list集合原來的順序不變。

2hashset實現

實現思路:我們知道hashset實現了set介面,不允許出現重複元素

可以基於這個想法,把list集合所有元素存入hashset物件,接著把list集合元素全部清空,最後把hashset物件元素全部新增至list集合中,這樣就可以保證不出現重複元素。而hashset有乙個建構函式,在初始化時可以直接新增元素。其中,hashset不能保證順序不變,所以此方式不能保證list集合原來的順序不變。

3treeset集合

實現思路:treeset集合也是實現set介面,是乙個有序的,並且無重複元素集合。同理,我們可以根據上面方式二的思想進行去重。其中,去重後的list集合可以保證和原來的順序一致。

4list集合contains方法迴圈遍歷

實現思路:利用list集合contains方法迴圈遍歷,先建立新的list集合,接著迴圈遍歷原來的list集合,判斷新集合是否包含有舊集合,如果有,則不新增至新集合,否則新增。

最後,把舊集合清空,把新集合元素賦值給舊集合。

測試:隨機生成0-500之間的20000個整數字串,並存入list集合,並在相應**列印相關時間進行對比。

測試對比:

多次測試結果

第一次四種方式執行時間如下:223、10、16、30;

第二次四種方式執行時間如下:164、10、17、43;

第三次四種方式執行時間如下:164、9、16、37。

綜合**及執行時間對比,方式二是最好的去重方式,**最簡潔、耗時最短

重複資料刪除的方法

我們的磁碟備份裝置的容量已經趨於飽和,在資料中心已經沒有足夠的空間來備份pt級的資料,在這種情況下,當我們希望將備份資料儲存乙個月時,卻只能儲存兩到三天。問題是在我們的備份裝置中有太多的重複資料。現在終於有了解決這個問題的辦法,善於抓住機會賺錢的廠商們聲稱他們的新一代 刪除重複資料 產品可以按20 ...

日常指令碼二 重複資料刪除

這個指令碼是自己寫的用作刪除資料夾中重複文件的指令碼 參考了網路上的乙個linux教程。利用了相同檔案的檔案檢驗和相同的原理 主要linux命令 1 awk 2 tee 3 md5sum 4 comm 下面是指令碼 bin bash ls ls awk begin size 5 name1 name...

sql 刪除重複資料的方法

建立表 並在表中新增重複資料 create table dbo repeat emp no nvarchar 50 null,name nvarchar 50 null,age int null on primary 插入測試資料 insert into repeat values 000 zhan...