Arrivederc深藍(lán)
2016-01-27 10:56:37
比如Dog是我定義的一個(gè)類。String a = ?new String(); ? ? ? ?String b = ?new String();用a.equals(b)返回的是true。Dog c = new Dog();Dog d = new Dog();用c.equals(d)返回的是false。請(qǐng)專業(yè)的技術(shù)人員回答一下,不知道的,剛來(lái)學(xué)習(xí)的不要亂回答。請(qǐng)專業(yè)的技術(shù)人員回答一下,不知道的,剛來(lái)學(xué)習(xí)的不要亂回答。請(qǐng)專業(yè)的技術(shù)人員回答一下,不知道的,剛來(lái)學(xué)習(xí)的不要亂回答。請(qǐng)專業(yè)的技術(shù)人員回答一下,不知道的,剛來(lái)學(xué)習(xí)的不要亂回答。請(qǐng)專業(yè)的技術(shù)人員回答一下,不知道的,剛來(lái)學(xué)習(xí)的不要亂回答。
2 回答
已采納

geelylucky
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超3個(gè)贊
String重寫過(guò)equal方法~~
public?boolean?equals(Object?anObject)?{ ????if?(this?==?anObject)?{ ????????return?true; ????} ????if?(anObject?instanceof?String)?{ ????????String?anotherString?=?(String)?anObject; ????????int?n?=?value.length; ????????if?(n?==?anotherString.value.length)?{ ????????????char?v1[]?=?value; ????????????char?v2[]?=?anotherString.value; ????????????int?i?=?0; ????????????while?(n--?!=?0)?{ ????????????????if?(v1[i]?!=?v2[i]) ????????????????????????return?false; ????????????????i++; ????????????} ????????????return?true; ????????} ????} ????return?false; }
另外Dog這個(gè)自定義類。
如果重寫了Dog的equal也可以達(dá)到相同效果。
再延伸下去就是如果你要把Dog放到Set集合里。還需要重寫hashcode
即重寫Dog的hashcode和equal方法來(lái)判斷重復(fù)。
具體為什么要重寫hashcode和equal。
step1.請(qǐng)先自己思考一下。
step2.然后去網(wǎng)上搜索一下。
step3.結(jié)合起來(lái)總結(jié)。
希望你能把step3的輸出寫到這個(gè)帖子里,讓更多的朋友看到。來(lái)share一下。

Caballarii
TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
你需要在自定義類里面重寫equals方法,方法里面判斷什么情況下返回true,比如判斷Dog里的屬性是不是相等
添加回答
舉報(bào)
0/150
提交
取消