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

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

還是沒明白

請問一下問什么if (students.containsValue(new Student(null,name)))不能寫成if (students.containsValue(name))

而前面傳id的時候

if(students.containsKey(id)==true)

就可以直接用id傳進來?

正在回答

2 回答

我的理解是students在前面已經規定了泛型為<String , Student>,所以在調用containsValue()方法的時候也需要傳入對應的Student對象進行比較。

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

yebo 提問者

有道理!非常感謝!
2015-03-26 回復 有任何疑惑可以回復我~
#2

風中過客

if (students.containsValue(new Student(null,name)))//這里new Student 相當于將name裝進Student中去,調用構造方法為Student 中的name賦值 我是這樣理解的。
2015-05-03 回復 有任何疑惑可以回復我~

前者是傳的對象,后面只是傳了一個name變量

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

yebo 提問者

id和name不是都是String id = console.next()/String name = console.next()聲明的嗎,為什么會有這樣的區別呢?是因為key和value的不同嗎
2015-03-26 回復 有任何疑惑可以回復我~
#2

hmily8003 回復 yebo 提問者

不對,Key直接是Map的一個屬性,所以可以用Map對象去調用,而name卻是Student類里面的一個屬性,如果不創建一個Student類的對象,是無法調用name屬性的。
2015-06-19 回復 有任何疑惑可以回復我~
#3

hmily8003 回復 hmily8003

簡單點說,我們可以理解為Map集合中有兩個屬性,一個是key 另一個是Student類的對像, 只有這兩個才能直接調用,而我們要比較的,只是Student內部的其中一個name的屬性值而矣。
2015-06-19 回復 有任何疑惑可以回復我~
#4

慕粉3170877 回復 hmily8003

原來是這樣理解。之前一直理解那個key就是Student中的id,講的很透徹
2016-06-19 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

還是沒明白

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

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

幫助反饋 APP下載

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

公眾號

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