4 ways to sort a List using Stream or Lambda Expression in Java 8
This articles discusses various approaches to sort a List in Java 8 using Streams and Lambda Expressions.
- Sorting using Stream sorted() method
- Sorting in reverse using Stream sorted() method
- Sorting using lambda expression and Stream sorted() method
- Sorting using lambda expression with Collections.sort()
1. Sorting a List using Stream sorted() method
Stream sorted() returns a stream of elements sorted according to natural order.
package com.topjavatutorial; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class SortingDemo { public static void main(String[] args) { List<Integer> list = Arrays.asList(3,5,2,1,7); Stream<Integer> s = list.stream(); List<Integer> sortedList = s.sorted().collect(Collectors.toList()); System.out.println(sortedList); } }
Output :
[1, 2, 3, 5, 7]
2.Sorting in reverse order using overloaded sorted() method
Stream sorted() method is overloaded to take a Comparator that can sort the Stream of elements in a custom order as provided by the Comparator.
package com.topjavatutorial; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class SortingDemo { public static void main(String[] args) { List<Integer> list = Arrays.asList(3,5,2,1,7); Stream<Integer> s = list.stream(); List<Integer> descSortedList = s.sorted(Comparator.reverseOrder()).collect(Collectors.toList()); System.out.println(descSortedList); } }
Output :
[7, 5, 3, 2, 1]
3. Sorting List using lambda expression and Stream sorted() method
List<Integer> descSortedList = s.sorted((a, b) -> b.compareTo(a)).collect(Collectors.toList()); System.out.println(descSortedList);
Output :
[7, 5, 3, 2, 1]
4. Sorting List using lambda expression with Collections.sort()
We can also use the Collections.sort() as shown in below example :
List<Integer> list = Arrays.asList(3, 5, 2, 1, 7); Collections.sort(list, (a, b) -> b.compareTo(a)); System.out.println(list);
Output :
[7, 5, 3, 2, 1]
You may also like :
© 2017 – 2018, https:. All rights reserved. On republishing this post, you must provide link to original post