콘텐츠로 이동

2022 03 01

2022-03-01

Comparable & Comparator

  • 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()로 하자!!!