// Created on savesnippets.com · https://savesnippets.com/79aBd3M4VxZxI9 import java.util.*; import java.util.stream.*; class Demo { record User(String name, int age) {} void example() { var users = new ArrayList<>(List.of( new User("Alice", 30), new User("Bob", 25), new User("Cara", 30), new User("Dave", 25) )); // Single-key users.sort(Comparator.comparing(User::age)); // Multi-key: age desc, then name asc users.sort( Comparator.comparing(User::age).reversed() .thenComparing(User::name) ); users.forEach(System.out::println); // Sort stream → new list List sorted = users.stream() .sorted(Comparator.comparing(User::name)) .toList(); // Null-safe comparisons users.sort(Comparator.comparing(User::name, Comparator.nullsLast(Comparator.naturalOrder()))); } }