A class implements the Comparable
interface when there is a way to
decide whether one object of the class is greater than another. The
compareTo
method is the way to find out how the two classes
compare.
The first.compareTo(second)
method call gives a positive number when
the first object is greater than the second. Summary of meaning of results:
A good example to remember is comparing Integer
objects.
Integer a = new Integer(5);
Integer b = new Integer(12);
int c = a.compareTo(b); // results in 5-12 = -7
Another example is String
objects, where strings that are later in
the alphabet are like larger numbers. In the code below, do you expect
the result to be positive, negative, or zero? Why?
int result = "bog".compareTo("aardvark);
Technically, the Comparable interface has a class parameter <T>
which indicates to which type you can compare your class. This
parameter should just be the type of the class you are
writing. Examples:
public class Student implements Comparable<Student> {
// ...
public int compareTo(Student other) { ... }
}
public class Time implements Comparable<Time> {
// ...
public int compareTo(Time other) { ... }
}