Vienna
Chapter 11) 컬렉션 프레임워크 - Comparator, Comparable 본문
◇ Comparator와 Comparable
public interface Comparator{
int compare(Object o1, Object o2);
boolean equals(Object obj);
}
public interface Comparable{
int compareTo(Object o);
}
* Comparator: 기본 정렬 기준을 구현하는데 사용.
* Comparable: 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용.
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] strArr = {"cat","Dog","lion","tiger"};
Arrays.sort(strArr);
System.out.println("Arrays.toString(strArr) = " + Arrays.toString(strArr));
Arrays.sort(strArr, new Descending());
System.out.println("Arrays.toString(strArr) = " + Arrays.toString(strArr));
}
}
class Descending implements Comparator{
public int compare(Object o1, Object o2){
if(o1 instanceof Comparable && o2 instanceof Comparable){
Comparable c1 = (Comparable)o1;
Comparable c2 = (Comparable)o2;
return c2.compareTo(c1);
}
return -1;
}
}
◇ String 비교 Comparator
String에는 대소문자를 구분하지 않고 비교하는 Comparator가 존재.
Arrays.sort(strArr, String.CASE_INSENSITIVE_ORDER);
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] strArr = {"cat","Dog","lion","tiger"};
Arrays.sort(strArr);
System.out.println("Arrays.toString(strArr) = " + Arrays.toString(strArr));
Arrays.sort(strArr, String.CASE_INSENSITIVE_ORDER);
System.out.println("Arrays.toString(strArr) = " + Arrays.toString(strArr));
}
}
'언어 > Java의 정석' 카테고리의 다른 글
Chapter 11) 컬렉션 프레임워크 - TreeSet (0) | 2023.05.08 |
---|---|
Chapter 11) 컬렉션 프레임워크 - HashSet (0) | 2023.05.07 |
Chapter 11) 컬렉션 프레임워크 - Arrays (0) | 2023.05.05 |
Chapter 11) 컬렉션 프레임워크 - Stack과 Queue (0) | 2023.05.04 |
Chapter 11) 컬렉션 프레임워크 - Iterator (0) | 2023.05.04 |
Comments