一個person類,里面有年齡、姓名等屬性。有多個person類實例,怎么去除其中姓名相同的實例。求源代碼。
4 回答

謎之米
TA貢獻8條經驗 獲得超5個贊
你可重寫 equals和hashCode,邏輯如下,如果實例中姓名相同 那么 hashcode 相同,然后把實例集合往set容器里放,如果實例中 姓名有相同的 那么hashcode相同 那么set容器就會用當前實例覆蓋之前的hashcode一樣的實例。

達拉崩吧斑得貝迪卜多比魯翁
TA貢獻41條經驗 獲得超38個贊
你的問題有點問題,先向你確認一下,
1、你有一個叫person的類
2、你創建了多個這個類的實例
3、其中實例中有name成員是相同的
解決方法:
第一種:從根源上解決,就是你在實例化的時候,不允許存在相同姓名相同的實例。如果存在就替換原來的或者不允許實例化
第二種:就你描述的解決,你描述的內容是說已經實例出來了多個姓名相同的實例,那么就要確定依據什么條件去去掉相同的實例,例如說:名字為“小明”,年齡大于100歲的去掉。再例如:信息完全相同的去掉(這個更符合實際)。
看你是需要那個,到時候我可以寫個簡單的例子給你。

servlet_jdbc
TA貢獻1條經驗 獲得超0個贊
創建一個ArrayList集合;
把實例依次添加到集合里,在添加的時候對集合進行遍歷,遍歷集合時,判斷name屬性是否重復,重復則不添加;
最后集合里的對象就是去重的了。
添加回答
舉報
0/150
提交
取消