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