Comparable와 Comparator

Sorbet·2021년 2월 24일
0

https://gmlwjd9405.github.io/2018/09/06/java-comparable-and-comparator.html

자바에서 정렬할 때는 항상 Comparable을 상속하여 사용하고는 했는데 이 문제에서와 같이 Comparator를 사용해야하는 경우도 있다. Comparator의 사용법을 기억하자!

Comparator는 기본적으로 Object를 매개변수로 받아서 비교한다. 따라서, Comparator를 통해 정렬을 하고자할 때 정렬 대상이 primitive 타입이라면 wrapper 클래스를 이용해 Object로 만들어서 매개변수로 넘겨야 한다.

import java.util.Arrays;
import java.util.Comparator;

class Solution {
public String[] solution(String[] strings, int n) {

    //Comparator 클래스 정렬 3가지
    /*
    - 컴패러블 인터페이스 만들고 상속하는 클래스 -> 컴패어 투 매서드 오버라이드
    - 어레이, 컬랙션소트 안에다 직접 익명객체 컴패래이터 넣어주는 방법..!
    - 람다..!! 
    
    */
    
    Arrays.sort(strings, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            char c1 = o1.charAt(n);
            char c2 = o2.charAt(n);
            
            /*if(c1 > c2) {
                return 1;
            }
            else  if(c1 < c2) {
                return -1;
            }
            else if(c1 == c2) {
                return o1.compareTo(o2);
            }*/
            if(c1 == c2) {
                return o1.compareTo(o2);
            }else {
                return c1-c2;
            }
            
            //
        }
    });


    return strings;
}

}

profile
Sorbet is good...!

0개의 댓글