4 · Data & Collections · lesson 24 of 41
Comparable & Comparator
Natural order vs on-the-fly order.
Java
class User implements Comparable<User> {
String name; int age;
public int compareTo(User o) { return this.age - o.age; }
}
users.sort(Comparator.comparing((User u) -> u.name)
.thenComparingInt(u -> u.age).reversed());Key takeaways
- ✓Comparable defines the class's default order.
- ✓Comparator lets you sort by any strategy at the call site.