Comparable 인터페이스란 ?
1. "자기 자신과 매개변수 객체를 비교한다."
Java에서 같은 타입의 인스턴스를 서로 비교하는 클래스들은, 모두 Comparable 인터페이스를 구현하고 있다.
Wrapper 클래스의 인스턴스 (Byte, Short, Character, Integer, Float, Double, Boolean, Long 등은 정렬 가능)
String, time, Date 등의 클래스 인스턴스 또한 정렬 가능
2. compareTo() 메소드 필수 구현 : 매개 변수 객체를 현재 객체와 비교하여 작으면 음수, 같으면 0, 크면 양수를 반환한다.
class Student implements Comparable<Student> {
int age; // 나이
int classNumber; // 학급
Student(int age, int classNumber) {
this.age = age;
this.classNumber = classNumber;
}
@Override
public int compareTo(Student o) {
/*
* 만약 자신의 age가 o의 age보다 크다면 양수가 반환 될 것이고,
* 같다면 0을, 작다면 음수를 반환할 것이다.
*/
return this.age - o.age;
}
}