728x90
반응형


// Comparable : 기본 정렬기준을 구현하는데 사용
// Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용.
// compareTo : 비교 한다는 목적으로 고안됨. 비교 객체의 값이 같으면 0, 작으면 음수, 크면 양수
// a 문자열과 b 문자열을 비교할 때 첫번째자리에서 비교 , a열의 첫 글자 - b 열의 첫 글자 = ?
// if 첫글자가 같다면 두번째 자리를 비교, 같다? 세번째 ....이런식.
// 유니코드의 순서가 작은 값에서부터 큰 값으로 정렬됨.
// 배열을 기본정렬 : 숫자가 작은것 부터 순서대로 정렬됨. : A 의 아스키 코드가 a의 아스키 코드보다 작다.
import java.util.*;
public class Ex11_7 {
public static void main(String[] args) {
String[] strArr = { "cat", "Dog", "lion", "tiger" };
Arrays.sort(strArr); // String Comparable 구현에 의한 정렬
System.out.println("strArr=" + Arrays.toString(strArr));
Arrays.sort(strArr, String.CASE_INSENSITIVE_ORDER); // 대소문자 구분안함
System.out.println("strArr=" + Arrays.toString(strArr));
Arrays.sort(strArr, new Descending()); // 역순 정렬
System.out.println("strArr=" + Arrays.toString(strArr));
}
}
class Descending implements Comparator { //인터페이스를 상속받아서 만들었다.
public int compare(Object o1, Object o2) {
if (o1 instanceof Comparable && o2 instanceof Comparable) {
//instanceof : 참조하고 있는 인스턴스의 존재여부를 알기 위해 사용
Comparable c1 = (Comparable) o1;
Comparable c2 = (Comparable) o2;
return c1.compareTo(c2) * -1; // -1을 곱해서 기본 정렬방식의 역순으로 변경한다.
// 또는 c2.compareTo(c1) 처럼 순서를 바꿔도 된다.
} // 비교를 해서 0,음수,양수를 반환하기 위해서 만드는 클래스.
return -1;
}
}728x90
반응형
'Language > Java' 카테고리의 다른 글
| aVector의 객체 추가, 변경, 삭제 (0) | 2021.03.31 |
|---|---|
| 숫자의 기본정렬과 역순정렬 (0) | 2021.03.31 |
| Vector (0) | 2021.03.31 |
| 컬렉션의 정리 , A와a의 순서 비교법 기본 (0) | 2021.03.31 |
| Arrays Method - 변환 // 수정필 (0) | 2021.03.30 |
| binarySearch (0) | 2021.03.30 |