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<User> sorted = users.stream()
.sorted(Comparator.comparing(User::name))
.toList();
// Null-safe comparisons
users.sort(Comparator.comparing(User::name, Comparator.nullsLast(Comparator.naturalOrder())));
}
}
Create a free account and build your private vault. Share publicly whenever you want.