ComparisonChain is smart, in the sense that it will stop calling compareTo on objects as soon as it finds the first non zero comparison. It is much more readable, and less error prone. Highly recommended! :-)