二. 對列表元素為實體類的去重
三. 對列表元素為實體類某屬性的去重
參考資料
概述
實現示例
/**
* 測試
*/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層的介面來實現,並將返回的集合合併。此時會出現乙個問題 搜尋出來的結果...