Learnitweb

Sort a List in Descending Order

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.