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 Code | Optimized Version | Reason |
|---|---|---|
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