第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么用equals比較String的對象就相同,比較兩個自定義類的對象就不相同

為什么用equals比較String的對象就相同,比較兩個自定義類的對象就不相同

Arrivederc深藍 2016-01-27 10:56:37
比如Dog是我定義的一個類。String a = ?new String(); ? ? ? ?String b = ?new String();用a.equals(b)返回的是true。Dog c = new Dog();Dog d = new Dog();用c.equals(d)返回的是false。請專業(yè)的技術(shù)人員回答一下,不知道的,剛來學(xué)習(xí)的不要亂回答。請專業(yè)的技術(shù)人員回答一下,不知道的,剛來學(xué)習(xí)的不要亂回答。請專業(yè)的技術(shù)人員回答一下,不知道的,剛來學(xué)習(xí)的不要亂回答。請專業(yè)的技術(shù)人員回答一下,不知道的,剛來學(xué)習(xí)的不要亂回答。請專業(yè)的技術(shù)人員回答一下,不知道的,剛來學(xué)習(xí)的不要亂回答。
查看完整描述

2 回答

已采納
?
geelylucky

TA貢獻3條經(jīng)驗 獲得超3個贊

String重寫過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這個自定義類。

如果重寫了Dog的equal也可以達到相同效果。

再延伸下去就是如果你要把Dog放到Set集合里。還需要重寫hashcode

即重寫Dog的hashcode和equal方法來判斷重復(fù)。

具體為什么要重寫hashcode和equal。

step1.請先自己思考一下。

step2.然后去網(wǎng)上搜索一下。

step3.結(jié)合起來總結(jié)。


希望你能把step3的輸出寫到這個帖子里,讓更多的朋友看到。來share一下。


查看完整回答
1 反對 回復(fù) 2016-01-28
?
Caballarii

TA貢獻1123條經(jīng)驗 獲得超629個贊

你需要在自定義類里面重寫equals方法,方法里面判斷什么情況下返回true,比如判斷Dog里的屬性是不是相等

查看完整回答
反對 回復(fù) 2016-01-28
  • 2 回答
  • 0 關(guān)注
  • 1666 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號