Generate로 hash 생성시, hash()와 hashCode()
Generate를 이용해서
Hash 생성시
@Override
public int hashCode() {
return Objects.hashCode(id);
}와 같이 영상과는 달리 hash()가 아닌 hashCode()가 생성되어 결과물이 미묘하다 다릅니다.
검색해보니, hash가 hashCode 배열 처리된 걸로 알고 있어서 차이가 있다는 건 알겠는데
@Override
public int hashCode() {
return Objects.hash(id);
}일부러 Code를 삭제해서 영상처럼 위와 같이 실무에서도 hash를 기반으로 사용할지, 아니면 IDE에서 기본으로 제공하는 대로 hashCode를 사용해도 딱히 상관이 없나요?
답변 1
2
안녕하세요. baileypark님, 공식 서포터즈 y2gcoder입니다.
아시는 것과 같이 Objects.hash()는 여러 필드를 받아서 해시 코드를 만들어주고, Objects.hashCode()는 단일 필드를 이용해 해시 코드를 만들어 주고 있습니다!
IDE가 똑똑하게도 여러 필드를 사용할 때는 Objects.hash()를 사용해서 hashCode()를 오버라이딩해주고, 하나의 필드만 가지고 오버라이딩한 hashCode()를 만드려고 하면 Objects.hashCode()를 사용하는 것을 보실 수 있습니다.
그래서 저도 실무에서는 큰 고민하지 않고 IDE가 생성해주는 equals()와 HashCode()를 신뢰하고 사용합니다
감사합니다.
제네릭 타입 매개변수 제한과 관련한 문의입니다.
0
80
3
강의가 좀 버겁다 느껴질 때 학습방법 문의
1
135
4
제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T
0
61
1
new T()가 안 되는 니유
0
102
1
안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.
0
98
2
자바 로드맵 선택 질문
0
111
2
실전 자바 중급 - 2편 후 추천 강의
0
176
2
실프로젝트에서 Java25버전 사용
0
120
1
Arrays.sort
0
68
1
블로그 작성 시, 저작권 문제에 대하여
0
166
1
중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.
0
94
3
pop()과 poll()의 차이
0
94
1
특정 index의 노드 조회하기 질문
0
66
2
List.of() 비어있는 불변 리스트 생성
0
81
2
문제2: 개 타입 반환
0
55
2
[리뷰] 중급2편까지 겨우 완강 했습니다.
0
113
2
문제와 풀이1 Ex2와 Ex3
0
65
2
노드 삭제시 노드 null값으로 초기화
0
77
2
강의영상에 대한 질문
0
57
1
타입 매개변수 제한
0
59
1
compareTo
0
68
1
직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다
0
98
3
섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨
0
70
2
퀴즈 오류 관련 문의
0
109
1





