list集合相信大家在開發過程中幾乎都會用到。有時候難免會遇到集合裡的資料是重複的,需要進行去除。然而,去重方式有好幾種方式,你用的是哪種方式呢?去重方式效率是否是最高效、最優的呢?今天就給大家講解一下list集合去重的常見及常用的四種方式。
01實現思路:使用兩個for迴圈遍歷集合所有元素,然後進行判斷是否有相同元素,如果有,則去除。這種方式是大部分最先想到的,也是最簡單的實現方式。其中,這種方式可以保證list集合原來的順序不變。
**實現:
實現思路:treeset集合也是實現set介面,是乙個有序的,並且無重複元素集合。同理,我們可以根據上面方式二的思想進行去重。其中,去重後的list集合可以保證和原來的順序一致。
**實現:
實現思路:利用list集合contains方法迴圈遍歷,先建立新的list集合,接著迴圈遍歷原來的list集合,判斷新集合是否包含有舊集合,如果有,則不新增至新集合,否則新增。最後,把舊集合清空,把新集合元素賦值給舊集合。
**實現:
public static void main(string args){
//隨機生成0-500之間的1000個整數字串list集合
list list = getrandomlist();
//為了演示四種方式效率,建立四個list集合,保證list集合元素一致
//方式一list集合
list onelist = new arraylist<>();
onelist.addall(list);
//方式二list集合
list twolist = new arraylist<>();
twolist.addall(list);
//方式三list集合
list thirdlist = new arraylist<>();
thirdlist.addall(list);
//方式四list集合
list fourthlist = new arraylist<>();
fourthlist.addall(list);
第一次四種方式執行時間如下:223、10、16、30;
第二次四種方式執行時間如下:164、10、17、43;
第三次四種方式執行時間如下:164、9、16、37;
綜合**及執行時間對比,方式二是最好的去重方式,**最簡潔、耗時最短。你平時list集合去重,方式用對了嗎?
List的五種去重方式
list的五種去重方式 set集合去重,不改變原有的順序 public static void pastleep1 listlist system.out.println listnew listnew.tostring 遍歷後判斷賦給另乙個list集合 public static void pas...
四種去重方法耗時比較
總結一下四種去除重複元素的方法,由於有的方法在pta上執行超時,所以在這裡對這四種方法執行耗時做乙個比較。我認為第四種方法放在實際的題目裡面應該是執行時間最短的,因為只有這個方法在pta上沒有執行超時 include include include define n 10000 intmain vo...
List去重的幾種方式
去除重複資料 由於set的無序性,不會保持原來順序 param list public static list distinct list list set去重並保持原先順序的兩種方法 public static void delrepeat list list 去除重複資料 一般不推薦 類似於氣泡...