
값 타입의 경우 인스턴스가 달라도 그 안에 있는 필드의 모든 값들이 같으면 같은 걸로 처리해줘야하기 때문에 값 타입 정의시 equals()와 hashcode()를 재정의해야한다.
1.값 타입 클래스에 가서 command+N을 누르면 아래 창이 뜬다.

equals() and hashcode()를 누른다.

yes를 누른다.

next를 누른다.

equals() 메서드에서 비교할 필드들을 체크하고 next를 누른다. 위의 예시는 city와 street 필드의 값이 같으면 true를 반환하겠다는 의미다.

hashcode() 메서드에서 비교할 필드들을 체크하고 create를 누른다.

그럼 위와같이 equasl()와 hashcode()가 재정의된다.