0
왜 OOP 언어는 객체의 메모리 위치를 클래스의 인스턴스에 대한 기본 해시 코드로 사용할 수 있습니까? 해시 테이블이 주소 지정 가능한 메모리보다 작은 경우.많은 OO 언어가 객체 자체의 메모리 위치를 기본 해시 코드로 사용하는 이유는 무엇입니까?
왜 OOP 언어는 객체의 메모리 위치를 클래스의 인스턴스에 대한 기본 해시 코드로 사용할 수 있습니까? 해시 테이블이 주소 지정 가능한 메모리보다 작은 경우.많은 OO 언어가 객체 자체의 메모리 위치를 기본 해시 코드로 사용하는 이유는 무엇입니까?
매우 편리하기 때문에!
메모리 주소는 다른 개체가 동일한 메모리 위치를 차지할 수 없으므로 개체의 고유 식별자입니다. 해시 테이블을 사용할 필요는 없습니다. 처음에는 해시 테이블이 작고 단지 10 개의 버킷이 있다고 가정합니다. 개체를 넣을 양동이를 결정하려면 해당 주소와 % 10
을 가져옵니다. 그리고 당신은 버킷보다 "충분히 좋은"분포를 가지고 있습니다. 해시 테이블은 정말 흥미 롭습니다. 예를 들어 해시 테이블에 대한 자세한 내용을 읽어 보시기 바랍니다. Wikipedia에 있습니다.
해시 테이블은 일반적으로 해시 코드를 직접 테이블 인덱스에 매핑하지 않습니다. 주소는 일반적으로 불변이며 고유하며 계산에 비용이 들지 않아 편리하게 사용할 수 있습니다. – pvg