| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 인프런백기선
- 알고리즘
- 자바
- MariaDB
- 스프링부트와AWS로혼자구현하는웹서비스
- 자바예외
- 혼공SQL
- vue.js
- 네트워크
- DDD
- 자료구조
- AWS
- 인덱스
- 기술면접
- 자바스터디
- 도메인 주도 개발 시작하기
- 이펙티브 자바
- java
- 이팩티브 자바
- jpa
- CleanCode
- mysql
- 클린코드
- 알고리즘분석
- 이펙티브자바
- 인프런김영한
- react
- aop
- AWS RDS
- SQL쿡북
- Today
- Total
목록equals (2)
기록이 힘이다.
핵심 정리: hashCode 규약 - equals 비교를 사용하는 정보가 변경되지 않았다면 hashCode는 매번 같은 값을 리턴해야 한다. (변경되거나, 애플리케이션을 다시 실행했다면 달라질 수 있다.) - 두 객체에 대한 equals가 같다면, hashCode의 값도 같아야 한다. - 두 객체에 대한 equals가 다르더라도, hashCode의 값은 같을 수 있지만 해시 테이블 성능을 고려해 다른 값을 리턴하는 것이 좋다. 동작은 한다. @Override public int hashCode(){ return 42; } hashCode가 같으면 모두 같은 버킷에 들어간다. linked list 처럼 동작 --> hash값으로 꺼내기 때문에 효용의 가치가 없다. O(n)만큼 들어가서 알고리즘의 효율성이 ..
핵심 정리: equals를 재정의 하지 않는 것이 최선 다음의 경우에 해당된다면 equals를 재정의 할 필요가 없다. 각 인스턴스가 본질적으로 고유하다. ex)enum 인스턴스의 '논리적 동치성'을 검사할 필요가 없다. 상위 클래스에서 재정의한 equals가 하위 클래스에도 적절하다. 클래스가 private이거나 package-private이고 equals 메서드를 호출할 일이 없다. 핵심 정리: equals 규약 반사성: A.equals(A) == true 대칭성: A.equals(B) == B.equals(A) CaseInsensitiveString package me.whiteship.chapter02.item10; import java.util.ArrayList; import java.util...