- List에 담긴 요소<제네릭타입>은 Comparable인터페이스를 상속받아야 함
오름차순 정렬 메소드. 제네릭타입이 Comparable을 implements 해야 사용 가능
추상메소드: int compareTo(제네릭타입 변수)
매개변수에 해당 클래스타입이 들어가는 int형 메소드
정렬을 위해 씀
->Student라는 클래스에서 int num을 기준으로 정렬한다고 해보자
num: 자기자신(앞의값), o.num: 입력한 비교대상
return값이 0이나 음수이면 자리바꿈X, 양수면 자리바꿈
@Override
public int compareTo(Student o) {
if(num>o.num){ //입력한 값보다 크면
return 1; //1을 리턴
}else if(num<o.num){
return -1;
}else{
return 0;
}
->내림차순으로 정렬하고 싶으면 반대로 하면 됨
@Override
public int compareTo(Student o) {
if(num>o.num){ //입력한 값보다 크면
return -1; //-1을 리턴(자리안바꿈)
}else if(num<o.num){
return 1; //자리바꿈
}else{
return 0;
}
->문자열 정렬
public int compareTo(Member m) {
return id.compareTo(m.id); // 이름순으로 오름차순
return id.compareTo(m.id)*-1; // 이름순으로 내림차순
-> 클래스 상속을 해주면
-> main메소드에서 sort메소드를 이용해서 정렬하기
ArrayList<클래스명> as = new ArrayList<클래스명>();
Collection.sort(as);
as.forEach(t->System.out.println(t));
=>클래스에 오버라이드 한대로 정렬되어 출력됨