Object
클래스의 toString()
메서드가 객체의 해시 코드를 반환하면 Object 클래스의 hashCode()
메서드는 무엇을 수행합니까? 또한 개체의 해시 코드를 반환하면 toString()
메서드에서 반환하는 값이 hashCode()
메서드에서 반환되는 값과 같은 이유는 무엇입니까?자바의 Object 클래스의 toString() 및 hashCode() 메서드
답변
Object는 다른 모든 Java 클래스의 기본 클래스입니다. 즉, 모든 클래스가 암시 적으로 toString
및 hashCode
을 지원합니다. 그러나 많은 클래스가 하나 또는 둘 모두를 오버라이드하므로 Object의 기본 구현을 얻지 못합니다.
예를 들어, Double 객체의 toString
은 부동 소수점 숫자의 의미있는 기본 서식 버전을 반환하지만 double의 hashCode
은 해시 테이블에서 검색을 키잉하는 데 적합한 float 값의 해시 버전을 반환합니다.
toString
은 주로 디버그 인쇄를 지원하기위한 것입니다. 개발자가 느낀 점은 그 특정 객체 클래스에 대해 "가장 의미가있다"는 것입니다. Object의 경우 작업 할 것이별로 없으므로 hashCode 값의 텍스트 표현과 함께 클래스 이름이 사용됩니다. 반면에 hashCode
은 해시 기반 검색을 용이하게하기위한 것이므로 개발자는 다르게 비교되는 객체에서는 다를 확률이 높지만 같은 것으로 비교되는 객체에서 동일하다는 보장이있는 숫자를 생성합니다. 여기
몇 가지 포인트 :
toString()
반환 된 className @ 해시 코드를
hashCode()
반환 해시 코드가 컬렉션 (설정 및지도)에 사용되는 경우에만 클래스
의 해시 코드, 자바에서 성능을 향상시키는 방법입니다. 컬렉션 프레임 워크를 사용하는 방법을 아는 지 알지 못합니다. 당신이 콜렉션에 객체를 검색 할 때하지만이
처럼 작동, 그것은 개체의 해시 코드를 찾고 시작하고, 일치하는 항목을 발견하면, 그것은 동일한 개체
검색 시작 그런 식으로 각 객체를 검색과 비교하려고하는 1000 개의 객체 컬렉션을 검색하는 대신 해시 코드 (예 : 50 일 수 있음)를 검색 한 다음이 해시 코드로 객체를 검색합니다.
equals() 및 hashCode() 메서드를 사용하여 작업하는 방법에 대한 많은 규칙이 있지만 어쨌든 쉽게 사용할 수 있습니다.
- 1. composite id 클래스의 hashCode() 및 equals() 메서드
- 2. 모든 클래스의 선언, 생성자 및 toString 메서드
- 3. Object 클래스의 hashCode() 메서드가 구현되는 방식은 무엇입니까?
- 4. 자바의 hashCode()가 결정적인가?
- 5. Object 클래스는 어떻게 구현됩니까 (hashCode 및 내부 필드와 같은 메서드)?
- 6. Object 클래스의 protected 메서드 MemberWiseClone()
- 7. toString() 메서드 및 재귀 호출
- 8. ToString 메서드
- 9. toString 메서드
- 10. Float 클래스 toString 메서드
- 11. ArrayList toString() 메서드
- 12. annotation을 사용하여 equals/hashcode/toString 생성하기
- 13. Java 객체의 HashCode 및 Equals 메서드
- 14. View 클래스의 Hashcode() 및 equals() 구현
- 15. final 클래스의 equals() 및 hashCode() 메서드를 재정의해야합니까?
- 16. toString() 메서드 오류
- 17. Lombok @Data는 기존의 toString 및 hashCode 메서드를 대체합니까?
- 18. Object 클래스의 ToString 메서드는 개체의 형식을 검색 할 수 있습니까?
- 19. ArrayList의 toString 메서드 및 생성자 구현
- 20. hashCode(), equals (Object) and compareTo (Class)
- 21. JIBx 생성 toString 메서드
- 22. 개미로 toString 메서드 생성
- 23. 간단한 toString() 메서드
- 24. Entity Framework ToString 메서드
- 25. hashcode() 및 equals()에 대해
- 26. 웹 서비스 클래스의 ToString()
- 27. hashCode 메소드에 객체 # hash (Object ...) 사용?
- 28. Objects.hashCode()와 새 Object()의 차이점 hashCode()?
- 29. 모든 인스턴스가 동일한 클래스의 HashCode 구현
- 30. 스칼라에서 toString 메서드 재정의 열거
toString() 메서드는 해시 코드를 반환하지 않습니다. – Kon
_ hashCode() 메서드에서 반환하는 값으로 toString() 메서드에서 반환하는 값은 무엇입니까? _ 동사가 누락되었습니다. –
이것은 분명히 초보자 질문이지만 약간의 통찰력을 보여줍니다. 나는 불공평하게 엎 지르지 않고 있다고 생각한다. –