2009年2月24日 星期二

第200題

Given:
11. public class Person{
12. private String name;
13. public Person(String name){
14. this.name = name;
15. }
16. public boolean equals(Object o){
17. if(!(o instanceof Person)) return false;
18. Person p = (Person)o;
19. return p.name.equals(this.name);
20. }
21. }

Which statement is true?
A. Compilation fails because the hashCode method is not overridden.
B. A HashSet could contain multiple Person objects with the same name.
C. All Person objects will have the same hash code because the hashCode method is not overridden.
D. If a HashSet contains more than one Person object with name="Fred", then removing another Person, also with name="Fred", will remove them all.
答案:B
參考:12-4-2 equals()、hashCode()方法的改寫

----------------------------------------

因為沒有改寫hashCode, 所以相同名稱也會被視為不相同的物件, 所以可以全部放入hashSet

沒有留言:

張貼留言