2022 03 01
2022-03-01¶
Comparable & Comparator¶
- 참고: https://gmlwjd9405.github.io/2018/09/06/java-comparable-and-comparator.html
- Comparable
- 정렬 수행시 기본적으로 정렬 기준이 되는 메서드 정의한 인터페이스
- Comparable interface를 implement 한 뒤, compareTo() 를 오버라이드
- Arrays.sort(array)
- Collections.sort(list)
- Comparator
- 정렬 가능한 클래스들의 기본 정렬 기준과 다르게 정렬하고 싶을때 사용
- 주로 익명 클래스로 활용됨
- 오름차순 -> 내림차순으로 변경하여 정렬하고 싶을 때 사용 (ex. Comparator.reverseOrder())
- Arrays.sort(array, myComparator)
- Collections.sort(list, myComparator)
Integer 비교하기 ==와 .equals()¶
- 참고: https://dev-typo.tistory.com/21
// #1 Integer A = 1; Integer B = 1; System.out.println(A == B); // #2 Integer A = 1000; Integer B = 1000; System.out.println(A == B); // #3 Integer A = -128; Integer B = -128; System.out.println(A == B); // #4 Integer A = 1; Integer B = new Integer(1); System.out.println(A == B);- 1: true, 2: false, 3: true, 4: false
- Integer는 캐싱이 되어있어!
- -128 ~ 127 까지의 값은 캐싱이 되어있기 때문에 == 로 비교해도 주소값 비교 뚝딱 OK
- 하지만 범위를 벗어나는 값에 대해 주소값 비교는 false;
- Reference Type의 객체를 비교할거면 .equals()로 하자!!!