인프런 커뮤니티 질문&답변
HashCode override
작성
·
192
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
ghuhan18님, hashCode 메서드를 사용할 때 Math.abs(Objects.hashCode(key))와 Math.abs(key.hashCode()) 사이에는 중요한 차이가 있습니다.
Math.abs(Objects.hashCode(key)):Objects.hashCode(key)는key가null일 경우에도 안전하게0값을 반환합니다. 이를 통해NullPointerException을 방지할 수 있습니다.
Objects.hashCode()는 내부적으로key.hashCode()를 호출하기 전에key가null인지 체크하기 때문에 항상 안전하게 작동합니다.
Math.abs(key.hashCode()):key가 null일 경우, 직접적으로key.hashCode()를 호출하면NullPointerException이 발생할 수 있습니다.
- 따라서,
key가 null일 가능성이 있는 경우에는Objects.hashCode(key)를 사용하는 것이 더 안전한 방법입니다.
이러한 이유로, 만약 key가 null일 가능성이 있다면 Objects.hashCode()를 사용하는 것이 좋습니다. 이를 통해 코드의 안정성과 예외 처리에서의 부담을 줄일 수 있습니다.
도움이 되셨기를 바랍니다! 추가적으로 궁금한 점이 있다면 언제든지 문의해 주세요.






