이 포스트를 이해하기 위해서는, Hash 자료구조에 대한 이해가 선행되어야 합니다. 만약에 이에 대한 이해가 없다면, 이 포스팅을 보고 오시는 것을 강력하게 권해드립니다. 흔히 많은 책에서 equals를 오버라이딩 하면, hashCode를 같이 오버라이딩을 하라고 합니다. 왜 그런지 천천히 알아보도록 하겠습니다. Dog 클래스입니다. 오늘은 이 클래스만 보고 이야기를 해 보도록 하겠습니다. 먼저 hashSet에 item을 하나 넣었다고 가정해 봅시다. 그러면 HashSet의 add 메서드가 hashMap의 put 메서드를 호출합니다. put은 putVal 메서드를 호출하는데요. 이 때, 1번째 인자로 hash(key)를 넣습니다. 이 함수의 내부를 봅시다. hashSet에 add한 key 객체가 hash..
HashCode 검색 결과
해당 글 2건
왜 java에서는 equals 메서드를 오버라이드 하면 hashCode 도 같이 해야 할까요?
레퍼런스/분석
2019. 12. 15. 16:41
java hashCode vs identityHashcode : 이 둘은 무엇이 다를까요?
Java hashCode랑 identityHashCode의 차이점이 무엇일까요? 그에 대해서 답을 하기 전에, 간단한 실험을 하고 넘어갑시다. identityHashCode는 객체가 다르면, 무조건 다른 값을 리턴할까요? 즉, 이 메서드의 리턴 값이, 객체의 고윳값이 될 수 있을까요? 사실 저는 그런 줄 알았습니다. 100만개짜리 Object 객체 배열을 만들었습니다. 그리고, 100만개의 Object 객체를 만들었습니다. 그리고, 객체 arr[i]의 identityHashCode 값을 treeset에다가 넣었습니다. 만약에, 객체 각각의 identityHashCode가 고유하다면, treeset에 들어간 원소 갯수는 100만개였을 겁니다. 그런데 실제로는 999768개입니다. TreeSet은 기본적으로..
레퍼런스/분석
2019. 7. 1. 00:15
최근댓글