Posted in

How to Sort a List of Integers in Java Using Streams

Solution 1-

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SortingExample1 {
    public static void main(String[] args) {
        List<Integer> integerArrayList = Arrays.asList(1, 20, 31, 4, 5);
        List<Integer> sortedList = integerArrayList.stream().sorted().collect(Collectors.toList());
        System.out.println(sortedList);
    }
}

Output

1, 4, 5, 20, 31

Solution 2- Optimized Code using java 16+

import java.util.Arrays;
import java.util.List;

public class SortingExample1 {
    public static void main(String[] args) {
        List<Integer> sortedList = Arrays.asList(1, 20, 31, 4, 5).stream().sorted().toList();
        System.out.println(sortedList);
    }
}

Output

1, 4, 5, 20, 31

✅ Improvements Made:

Original CodeOptimized VersionReason
Used Collectors.toList()Replaced with .toList().toList() is more concise and available in Java 16+

Note: .toList() requires Java 16 or later. If you’re using Java 8–15, continue using collect(Collectors.toList())

Solution 3- How can you sort a list of integers in descending order using Java 8+ Stream API?

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class SortingExample1 {
    public static void main(String[] args) {
        List<Integer> sortedList = Arrays.asList(1, 20, 31, 4, 5).stream().sorted(Comparator.reverseOrder()).toList();
        // Use collect(Collectors.toList()) in Java 8–15
        System.out.println(sortedList);
    }
}

Output

31, 20, 5, 4, 1

Leave a Reply

Your email address will not be published. Required fields are marked *