There are other tutorials, eg the
Java™ Tutorials, which has two sections about generics in. You might find that easier to understand. But Angelika Langer is usually very good.
There is a problem that in some instances < appears as ><; I have tried to correct that in your post.
What
<T extends Comparable<T>> means is that you have to have a particular type "T", and that type has to implement the
Comparable interface. And that
Comparable interface has to compare to the same type "T". Actually, I think the usual style is
<T extends Comparable<? super T>> which means that the
Comparable methods must take a "T" or any of its superclasses as its type.
I think the bit about "leftmost bound" means that the types are changed to the type which is highest (ie nearest to
java.lang.Object) in its inheritance tree.
Note you write
extends in generics, not
implements.