class
test
public
void
setname
(string name)
public integer getage()
public
void
setage
(integer age)
}
/**
*乙個屬性去重
*/// 其中 alllist 是test類的乙個集合
list
distinctlist = alllist
.stream()
.collect
(collectors.
collectingandthen
(collectors.
tocollection
(//根據age去重()
->
newtreeset
<
>
(comparator.
comparing
(test:
:getage)))
, arraylist:
:new))
;/**
* 多個屬性去重
* 其實就是將讀個屬性拼接當成比較條件
*/// 其中 alllist 是test類的乙個集合
list
distinctlist = alllist
.stream()
.collect
(collectors.
collectingandthen
(collectors.
tocollection
(//根據age和name 兩個屬性去重()
->
newtreeset
<
>
(comparator.
comparing
( o -
> o.
getage()
+"-"
+ o.
getname()
))), arraylist:
:new))
;
如果存在重複的,則最後保留的是原始list 中索引最前的那乙個(也就是第乙個)
如果新的list沒有重複,則加入到新的list中
如果新的list已經有,則使用既存的那乙個
public
static
comparable
<
?super u>> list
distinct
(collection
list, function<
?super t,
?extends
u> fun)
List根據某個字段(屬性)去重
更新 2021 06 01 1 void main 216 double d datetime.now.subtract dt totalmilliseconds 1718 方法一 19 datetime dt1 datetime.now 20 dictionary result1 new dict...
List Distinct根據實體屬性去重
集合中全是實體,怎麼根據實體某乙個屬性來對比唯一性?public class peoplecomparebyid iequalitycomparer public intgethashcode calendarresult obj view code 實體 calendarresult 唯一屬性 s...
根據list中物件的屬性去重和排序小結 必看篇
如下所示 去重 public class user public user int id,string name,int age public int getid public void setid int id public string getname public void setname s...