QUESTION 30자격증/OCJP_ExamD2018. 8. 5. 19:36
Table of Contents
반응형
QUESTION 30Given:public class Person {private String name, comment;private int age;public Person(String n, int a, String c) {name = n;age = a;comment = c; }public boolean equals(Object o) {if (!(o instanceof Person))return false;Person p = (Person) o;return age == p.age && name.equals(p.name);}}What is the appropriate definition of the hashCode method in class Person?A. return super.hashCode();B. return name.hashCode() + age * 7;C. return name.hashCode() + comment.hashCode() / 2;D. return name.hashCode() + comment.hashCode() / 2 - age * 3;Solution : B
plus imformation
hashCode() 와 관련된 규약
- equals() 로 비교시 두개의 오브젝트가 같다면, hashCode() 값도 같아야 한다.
- equals() 로 비교시 false 라면, hashCode() 값은 다를수도, 같을수도 있다. 그러나 성능을 위해서는 hashCode() 값이 다른것이 낫다. 그래야 해싱 알고리즘으로 Set 에 해당 오브젝트가 존재하는지 아닌지 빠르게 검색할 수 있다.
- hashCode() 값이 같다고 해서, eqauls() 가 true 를 리턴하는 것은 아니다. 해싱 알고리즘 자체의 문제로, 같은 해시값이 나올 수 있다.
반응형
'자격증 > OCJP_ExamD' 카테고리의 다른 글
QUESTION 32 (0) | 2018.08.05 |
---|---|
QUESTION 31 (0) | 2018.08.05 |
QUESTION 29 (0) | 2018.08.05 |
QUESTION 28 (0) | 2018.08.05 |
QUESTION 27 (0) | 2018.08.05 |
@IT grow. :: IT grow.
#IT #먹방 #전자기기 #일상
#개발 #일상