List foursides = [...] // Java 1-7: Anonymous, inner class Comparator compr7 = new Comparator() { @Override public int compare(Rectangle o1, Rectangle o2) { return o1.width - o2.width; } }; foursides.sort (compr7); // Java 8: Short definition as a Lambda foursides.sort( (Rectangle r1, Rectangle r2) -> r1.width - r2.width); foursides.sort( (r1, r2) -> r1.width - r2.width); // Java 8: Use of static methods and references foursides.sort(Comparator.comparingDouble(Rectangle::getWidth)); // Java 8: Use of default implementation from interface foursides.sort(Comparator.comparingDouble(Rectangle::getWidth).reversed(). thenComparing(Comparator.comparingDouble(Rectangle::getHeight)));