프로그래머스 lv2 정렬문제인 "가장 큰 수" 문제를 풀다가 알게 된 개념이다.
Arrays.sort(배열) 과 같이 인자를 한개만 줘서 배열을 정렬하는 것은 알고 있었지만(오름차순)
sort메소드에서 두번째 인자로 Comparator를 넘겨줘서 정렬하는 방식을 사용자가 정의하는 방식을 처음 알게 되었다.
import java.util.Arrays;
import java.util.Comparator; // 이와 같이 유틸리티 클래스 두개를 임포트해야 사용가능하겠다.
Arrays.sort(배열, Comparator<String>) 로 활용한다.
내부적으로 인자값으로 넘어온 Comparator 인터페이스의 compare메소드를 호출하여 비교(정렬) 하게 된다.
compareTo 메소드 작성법
현재객체 < 파라미터객체 : 음수리턴
현재객체 == 파라미터 객체 : 0리턴
현재객체 > 파라미터 객체 : 양수리턴
양수인 경우에만 두 객체의 자리를 바꾸고 음수나 0이면 객체자리 유지한다.
다음과 같이 Comparator 인스턴스 생성과 동시에 compare() 메소드를 오버라이드한다.
'Algorithm' 카테고리의 다른 글
Integer 클래스 활용 (0) | 2021.04.28 |
---|---|
자바 큰 수 범위를 표현하기 BigInteger 클래스 (0) | 2021.04.10 |
[JAVA] ArrayList 사용 (0) | 2021.02.05 |
Priority Queue (0) | 2021.02.02 |
해시맵(HashMap) (0) | 2021.01.08 |
최근댓글