[자바] equals() and hashCode()

손경이·2023년 11월 13일
0

자바

목록 보기
16/17

2023.11.13 [테킷 백엔드 부트캠프 희성 강사님 강의]

equals() and hashCode()

  • 객체의 주소가 아닌 값으로 비교한다.
  • 자바에서는 객체 내용이 같다라고 해도 같은 객체로 인정 안 해준다. 그래서 기준, 룰을 세워줘야 한다.


💞 롬복 사용으로 더 간편하게 @EqualsAndHashCode

  • 롬복을 사용하면 더 간편하게 사용할 수 있다.
  • 값을 지정해서 비교할 수 있다.
@EqualsAndHashCode.Include 
// @EqualsAndHashCode(of = "id") 같다. 객체의 주소가 아닌 "id" 값으로 비교한다.
private Long id;


💞 롬복 사용하지 않고 Intellij IDE 도구로 equals() and hashCode() 코드 작성 쉽게 하기

  • 해당 예시는 id값으로 객체를 비교하겠다는 예시이다.
	@Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Quotation quotation = (Quotation) o;

        return Objects.equals(id, quotation.id);
    }

    @Override
    public int hashCode() {
        return id != null ? id.hashCode() : 0;
    }

❤ Intellij IDE 도구

  • 아래 차례대로 따라하면 된다.
  • 처음에 객체 클래스 파일에서 오른쪽 마우스 클릭 후 Generate 누른다.
  • 그리고 equals() and hashCode()를 클릭한다.
  • 중간에 필드 선택하는 구간이 있는데 내가 비교하기를 원하는 필드를 선택한다.(여기서는 id값으로 비교하기 위해서 id값만 선택했다.)
  • 그리고 차례대로 따라가다보면 코드가 완성된다.

0개의 댓글