List列表去重方法

2021-09-29 13:46:51 字數 2460 閱讀 8022

二. 對列表元素為實體類的去重

三. 對列表元素為實體類某屬性的去重

參考資料

概述

實現示例

/**

* 測試

*/public

void

streamdeduplication1()

去重前:["a","b","f","a","z"]

去重後:["a","b","f","z"]

public

void

streamdeduplication1_1()

} system.out.

println

("去重後:"

+json.

tojson

(templist));

}

去重前:["a","b","f","a","z"]

去重後:["a","b","f","z"]

public

void

streamdeduplication1_2()

去重前:["a","b","f","a","z"]

去重後:["a","b","f","z"]

collections.frequency():統計每個元素的在集合中的個數。當集合中資料量特別大的時候,效能不好。

public

void

streamdeduplication1_3()

} system.out.

println

("去重後:"

+json.

tojson

(lists));

}

去重前:["a","b","f","a","z"]

去重後:["a","b","f","z"]

注意⚠️:在迴圈過程中刪除集合中元素時,只能通過iterator.remove()方法和使用for迴圈方式,不能使用增強for迴圈和foreach()方法。

示例**

/**

* 定義乙個實體類

*/@data

public

class

studentdto

}/**

* 測試

*/public

void

streamdeduplication2()

去重前:[,,]

去重後:[,]

/**

* 定義實體類

*/public

class

studto

// getter and setter

@override

public

boolean

equals

(object obj)

if(obj==null ||

getclass()

!=obj.

getclass()

) studto studto =

(studto)obj;

return objects.

equals

(getstudentid()

,studto.

getstudentid()

)&&objects.

equals

(getstudentname()

,studto.

getstudentname()

);}@override

public

inthashcode()

}/**

* 測試

*/public

void

streamdeduplication2_1()

去重前:[,,]

去重後:[,]

方法:首先建立乙個方法作為 stream.filter() 的引數,其返回型別為 predicate,原理就是判斷乙個元素能否加入到 set 中,**如下:

private

static

predicate

distinctbykey

(function<

?super t,

?> keyextractor)

示例**

public

void

streamdeduplication3()

去重前:[,,]

去重後:[,]

Python 列表list去重

一.fromkeys list keys list2 fromkeys list1 keys 二.set list2 list set list1 三.itertools.grouby ids 1,4,3,3,4,2,3,4,5,6,1 ids.sort it itertools groupby i...

List集合去重

第一種 list每remove掉乙個元素以後,後面的元素都會向前移動,此時如果執行i i 1,則剛剛移過來的元素沒有被讀取。string str1 newstring abcde1 string str2 newstring abcde2 string str3 newstring abcde3 s...

List合併去重

前段時間在完成乙個商品管理系統時,在管理員對商品進行聯合搜尋時,假如有乙個商品名為 蘋果 類別為 水果 這時管理員在搜尋欄輸入 果 因為為減小資料庫壓力,並不是對資料表中的外來鍵進行操作,而是選擇在service 層呼叫兩個dao層的介面來實現,並將返回的集合合併。此時會出現乙個問題 搜尋出來的結果...