Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 안드로이드#코틀린#디자인패턴#싱글턴패턴#개발#앱개발
- #충무로맛집#골목식당#스테이크#
- 비트마스킹
- 아키텍처패턴
- kotiln
- 삼성청년sw아카데미
- 알고리즘
- ssafy서울
- MVVM
- Java
- Kotlin
- DataBinding
- 싸피
- 백준
- 삼성역량테스트
- 탐탁노트북파우치
- 자바
- Higher-Order
- 안드로이드
- bitmasking
- nullalble
- 투포인터
- 코틀린
- 삼성파우치
- Android
- tomtoc
- 코딩테스트
- 탐탁삼성파우치
- 등산로조성
- lateinit
Archives
공상하는 개발자
[JAVA] Comparable, Comparator 정복하기 본문
반응형
자바에서는 정렬을 sort() 메서드로 할 수 있다.
하지만 이 메소드는 기본적인 정렬만 가능하고,
좀 더 자세한 조건을 건 정렬을 하고 싶을 때,
Comparable과 Comparator을 사용한다.
두 개를 사용하면서 무엇이 차이가 있는지 몰랐는데
이번 기회를 통해 이 두 개를 정복하도록 하자.
Interface Comparable
- 정렬 수행 시 기본적으로 적용되는 정렬 기준이 되는 메서드를 정의하는 인터페이스
- Java에서 기본적으로 제공되는 Integer나 String 같은 클래스들도 모두 Comparable 인터페이스를 구현하고 있다. (Integer : 오름차순, String : 사전 순 정렬)
구현 방법
- 정렬하고 싶은 객체에 Comparable를 implements 시키고, compareTo() 메서드를 오버라이드 해서 정렬하고 싶은 조건을 작성해준다.
구현 코드
class Square implements Comparable<Square>{
int height,width;
@Override
public int compareTo(Square o) {
if(this.width>o.width) {
return 1; // width에 대해서 오름차순이다.
}else {
return -1;
}
}
}
Interface Comparator
- 정렬 가능한 클래스들의 기본 정렬기준과 다르게 정렬하고 싶을 때 사용하는 인터페이스.
- 기본 정렬기준인 오름차순 정렬을 내림차순 정렬로 바꿀 때 많이 사용된다.
구현 방법
- 정렬하고 싶은 객체에 Comparator 를 implements 해주고 compare() 메서드를 오버라이드 한다.
구현 코드
class Square implements Comparator<Square> {
int height, width;
@Override
public int compare(Square o1, Square o2) {
return Integer.compare(o2.width, o1.width); // width 내림차순 정렬
}
}
두 가지의 정렬 인터페이스에 대해서 공부할 수 있는 기회를 가졌다.
확실한 이해를 하고 넘어가도록 하자.
반응형
Comments