프로그래머스 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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기