list的四種去重方式

2021-10-07 17:39:28 字數 1185 閱讀 6362

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 去除重複資料 一般不推薦 類似於氣泡...