inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)

Object 클래스와 메서드들

섹션 1 - 1 equals 재정의 하면 왜 hashcode도 재정의 해야하는지..

282

JunSuPark

작성한 질문수 9

0

섹션 1 - 1 강의 내용.

왜 equals 재정의 했다면 왜 hascode 도 재정의 해야하는지 이해가 되지 않습니다.

java 객체지향 알고리즘

답변 1

1

박은종

두 객체가 같다는것의 원래 정의는 같은 인스턴스 입니다. 같은 인스턴스는 곧 메모리 주소가 같은데, 자바에서는 이 메모리 주소를 hashCode 라고 합니다. hashCode()메서드가 재정의 되어 있지 않은 경우 인스턴스의 hashCode() 메서드의 반환값은 인스턴스 주소의 10진수 값이 됩니다.

그런게 두 객체가 같다는 논리적 정의인 equals()를 재정의 한 경우에 가령, 학번이 같다, Integer 객체의 숫자 값이 같다 와 같은 경우 equals()는 같은데, hashCode()가 재정의 되어 있지 않다면 논리적으로 같은객체의 다른 hashCode 값이 반환되는 것입니다. 따라서 Integer와 같은 경우는 해당되는 숫자 값을, 학생의 경우 학번을 반환해주도록 hashCode()메서드를 재정의 해주는 것입니다.

12분 10초 func(values, 0, 1)을 넣을 때

0

4

1

이진 탐색 문제 질문드립니다

0

295

1

ChatRoom에서 synchronized 사용 이유

0

529

1

미로찿기 질문드립니다

0

365

2

socket 질문드립니다

0

327

1

지역 내부 클래스 질문드립니다.

0

250

1

큐 구현하기 질문드립니다

0

372

2

수업자료

0

213

1

컬렉션 프레임워크에서 get()

0

310

2

synchronized 과정

0

232

1

awt 패키지 접근 불가 에러

0

573

1

iterator 관련 질문입니다.

0

277

1

수업 중간에 메소드 정의 보시는거 어떻게 하는지 알 수 있을까요?

1

337

2

예외처리 질문드려요

0

425

1

멀티 쓰레드 동기화 관련 질문입니다!

1

441

1

Generic 강의중 궁금한점

0

421

1

여러 가지 보조 스트림 클래스들

0

349

1

교재내용

0

370

1

힙메모리

0

484

1

미로찾기 문제에 VISIT의 쓰임

1

537

2

입출력 스트림 질문입니다.

0

304

1

알고리즘 강의는 무슨언어로 진행하시나요? 혹시 자바로 하시나요?

0

439

2

강의 화면의 깃랩은 어떻게 들어가나요?

0

734

2

강의가 잘못 업로드 되어 있습니다.

1

467

2