I read that Collections.sort() will work when all elements of the collection implement the Comparable interface. Why does the below work even when I am not explicitly implementing Comparable? Am I understanding the spec wrong?
Every object which you add to your List is an Integer. And Integer implements Comparable (you could look that up in the documentation). Therefore... all elements of the collection implement the Comparable interface.
So yes, you're understanding the spec wrong. It's the part where you decided you had to provide your own Comparable implementation, without realizing that the writers of the standard API had already done that.