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.

  1. Sorting using Stream sorted() method
  2. Sorting in reverse using Stream sorted() method
  3. Sorting using lambda expression and Stream sorted() method
  4. 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

You may also like...

Leave a Reply.. code can be added in <code> </code> tags