Approach 1: Using Comparator.reverseOrder()
List<Integer> nums = Arrays.asList(4,1,3,2);
List<Integer> desc = nums.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
System.out.println(desc); // [4, 3, 2, 1]
Why it works:
reverseOrder()sorts elements in reverse of natural order.
Approach 2: Custom Comparator (Alternative)
List<Integer> nums = Arrays.asList(4,1,3,2);
List<Integer> desc = nums.stream()
.sorted((a, b) -> Integer.compare(b, a))
.collect(Collectors.toList());
System.out.println(desc); // [4, 3, 2, 1]
Why it works:
- Uses a custom comparator equivalent to
reverseOrder. - More flexible for complex comparison logic.
