List根據指定屬性去重

2021-10-10 00:18:40 字數 1443 閱讀 2859

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...