亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

上次問的問題還是沒搞懂,再問問

上次問的問題還是沒搞懂,再問問

fenkapian 2017-05-12 07:27:24
一個person類,里面有年齡、姓名等屬性。有多個person類實例,怎么去除其中姓名相同的實例。求源代碼。
查看完整描述

4 回答

?
謎之米

TA貢獻8條經驗 獲得超5個贊

你可重寫 equals和hashCode,邏輯如下,如果實例中姓名相同 那么 hashcode 相同,然后把實例集合往set容器里放,如果實例中 姓名有相同的 那么hashcode相同 那么set容器就會用當前實例覆蓋之前的hashcode一樣的實例。

查看完整回答
2 反對 回復 2017-05-13
?
達拉崩吧斑得貝迪卜多比魯翁

TA貢獻41條經驗 獲得超38個贊

你的問題有點問題,先向你確認一下,

1、你有一個叫person的類

2、你創建了多個這個類的實例

3、其中實例中有name成員是相同的

解決方法:

第一種:從根源上解決,就是你在實例化的時候,不允許存在相同姓名相同的實例。如果存在就替換原來的或者不允許實例化

第二種:就你描述的解決,你描述的內容是說已經實例出來了多個姓名相同的實例,那么就要確定依據什么條件去去掉相同的實例,例如說:名字為“小明”,年齡大于100歲的去掉。再例如:信息完全相同的去掉(這個更符合實際)。


看你是需要那個,到時候我可以寫個簡單的例子給你。

查看完整回答
1 反對 回復 2017-05-12
  • fenkapian
    fenkapian
    第一種方法是重寫equals和hashcode方法嗎?然后把person放進map,利用了map的key不可重復的特性。那如果把person放在value中又該怎么做呢? 兩種麻煩都寫個例子給我看看啊 謝謝了
?
servlet_jdbc

TA貢獻1條經驗 獲得超0個贊

  1. 創建一個ArrayList集合;

  2. 把實例依次添加到集合里,在添加的時候對集合進行遍歷,遍歷集合時,判斷name屬性是否重復,重復則不添加;

  3. 最后集合里的對象就是去重的了。

查看完整回答
反對 回復 2017-05-12
?
幕附

TA貢獻78條經驗 獲得超18個贊


用set啊? 看看集合

查看完整回答
反對 回復 2017-05-12
  • 4 回答
  • 0 關注
  • 2360 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號