比如泛型為Person類(lèi)的List,里面有多個(gè)Person對(duì)象,Person類(lèi)有多個(gè)屬性,姓名、年齡、性別等等。怎么從List中去除姓名重復(fù)的Person對(duì)象呢。是不是要重寫(xiě)什么equals方法?麻煩講細(xì)點(diǎn)
3 回答
已采納

Elife漫格局
TA貢獻(xiàn)17條經(jīng)驗(yàn) 獲得超13個(gè)贊
可以利用set集合的不重復(fù)特性去重,代碼如下:
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
意思也很好理解,list是你的list集合,通過(guò)HashSet之后,變成了一個(gè)不重復(fù)但是無(wú)序的set集合,再將原本的list清空,將set中的集合加入list中,這個(gè)時(shí)候list就變成了不重復(fù)的集合,你可以寫(xiě)個(gè)例子試試

精慕門(mén)9254224
TA貢獻(xiàn)167條經(jīng)驗(yàn) 獲得超46個(gè)贊
自己定義的類(lèi)中equals方法都是比地址的,而你創(chuàng)建的實(shí)例地址都是不一樣的!所以他們都不一樣,list比較時(shí)都不一樣,無(wú)法去重復(fù)!把equals方法修改為比較內(nèi)容后,就可以了!
添加回答
舉報(bào)
0/150
提交
取消