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.