0
0
JavaHow-ToBeginner · 4 min read

How to Sort in Descending Order in Java - Simple Guide

To sort in descending order in Java, use Collections.sort() with Collections.reverseOrder() for lists, or use Arrays.sort() with a custom comparator. For example, Collections.sort(list, Collections.reverseOrder()) sorts a list from highest to lowest.
📐

Syntax

To sort a list in descending order, use:

  • Collections.sort(list, Collections.reverseOrder()) - sorts a list from highest to lowest.
  • Arrays.sort(array, Collections.reverseOrder()) - sorts an array of objects in descending order.

Note: For primitive arrays (like int[]), you need to convert to wrapper classes or use other methods.

java
Collections.sort(list, Collections.reverseOrder());
💻

Example

This example shows how to sort a list of integers in descending order using Collections.sort() and Collections.reverseOrder().

java
import java.util.*;

public class DescendingSortExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 1, 9));
        Collections.sort(numbers, Collections.reverseOrder());
        System.out.println(numbers);
    }
}
Output
[9, 8, 5, 3, 1]
⚠️

Common Pitfalls

Common mistakes include:

  • Trying to use Collections.reverseOrder() on primitive arrays like int[], which causes errors because it expects objects.
  • Sorting without specifying the comparator, which sorts in ascending order by default.
  • Modifying the list after sorting without re-sorting.
java
import java.util.*;

public class PitfallExample {
    public static void main(String[] args) {
        // Wrong: primitive array with reverseOrder (won't compile)
        // int[] arr = {5, 3, 8};
        // Arrays.sort(arr, Collections.reverseOrder()); // Error

        // Right: use Integer[] instead
        Integer[] arr = {5, 3, 8};
        Arrays.sort(arr, Collections.reverseOrder());
        System.out.println(Arrays.toString(arr));
    }
}
Output
[8, 5, 3]
📊

Quick Reference

MethodUsageNotes
Collections.sort(list, Collections.reverseOrder())Sorts a List in descending orderWorks with Lists of objects
Arrays.sort(array, Collections.reverseOrder())Sorts an Object array in descending orderUse with wrapper classes, not primitives
Convert primitive array to wrapper arrayThen use Arrays.sort with reverseOrderNeeded for primitive types like int[]

Key Takeaways

Use Collections.sort(list, Collections.reverseOrder()) to sort lists descending.
Arrays.sort() with Collections.reverseOrder() works for Object arrays, not primitives.
Primitive arrays need conversion to wrapper types for descending sort.
Always specify the comparator to sort in descending order.
Common errors come from mixing primitive arrays with object comparators.