Quick overview of the Comparable interface. The idea is that, for things that implement Comparable, there is an ordering of those elements; we can say 'bee' comes before 'eel' by alphabetical ordering for Strings, for instance. And for Integers, 17 comes before 18, etc.
It's defined as interface with one method:
public interface Comparable<T>
{
public int compareTo(T t);
}
When comparing 2 things (compare a to b by writing a.compareTo(b) ) compareTo should return -1 if a<b, return 1 if a>b, and return 0 if the two are equivalent. Which element is greater than the other depends on what you're looking at; for Strings, it's alphabetical ordering, for numbers it's numerical ordering.
class OrderedBlob implements Comparable<OrderedBlob> {
public int compareTo(OrderedBlob b) {
// needs to return a value that is...
// <0 if "this" object is less than b,
// 0 if this and b are equal
// >0 if this is greater than b;
}
}