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重寫(xiě)過(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è)自定義類。
如果重寫(xiě)了Dog的equal也可以達(dá)到相同效果。
再延伸下去就是如果你要把Dog放到Set集合里。還需要重寫(xiě)hashcode
即重寫(xiě)Dog的hashcode和equal方法來(lái)判斷重復(fù)。
具體為什么要重寫(xiě)hashcode和equal。
step1.請(qǐng)先自己思考一下。
step2.然后去網(wǎng)上搜索一下。
step3.結(jié)合起來(lái)總結(jié)。
希望你能把step3的輸出寫(xiě)到這個(gè)帖子里,讓更多的朋友看到。來(lái)share一下。
Caballarii
TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
你需要在自定義類里面重寫(xiě)equals方法,方法里面判斷什么情況下返回true,比如判斷Dog里的屬性是不是相等
添加回答
舉報(bào)
0/150
提交
取消
