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

為了賬號安全,請及時綁定郵箱和手機立即綁定

coursesToSelect.contains(course2)

對第一次比較有疑問。
contains方法相當于遍歷List進行equals比較,如果是String類型,比較的是內容而不是地址,為什么這里Course類型的equals比較的內容相同,contains返回值為false呢?

正在回答

1 回答

對于equals方法,注意:equals方法不能作用于基本數據類型的變量

    如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址;

    諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的內容。

而contains中的元素比較的應該是obj類型的,系統并沒有重寫equals方法,比較的是地址值


2 回復 有任何疑惑可以回復我~
#1

慕尼詩

那意思就是最后的那個this.name.equals(course.name)其實調用的就是string里重寫的equals方法咯,直接比較內容,所以可以了,是這個樣子么?
2019-04-13 回復 有任何疑惑可以回復我~
#2

jorry 回復 慕尼詩

字符串實現的equals()先判斷對象是否為同一個,還判斷了字符串內容是否一樣,請看源碼,在這里指的就是字符串實際內容。
2019-06-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

coursesToSelect.contains(course2)

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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