Java Stream How to - Sort String list then filter by starting value








Question

We would like to know how to sort String list then filter by starting value.

Answer

import java.util.ArrayList;
import java.util.List;
/*from w  w w.  j a v a  2s . c  o m*/
public class Main {

  public static void main(final String[] args) {
    List<String> stringCollection = new ArrayList<>();
    stringCollection.add("ddd2");
    stringCollection.add("aaa2");
    stringCollection.add("bbb1");
    stringCollection.add("aaa1");
    stringCollection.add("bbb3");
    stringCollection.add("ccc");
    stringCollection.add("bbb2");
    stringCollection.add("ddd1");


    stringCollection
            .stream()
            .sorted()
            .filter((s) -> s.startsWith("a"))
            .forEach(System.out::println);
  }

}

The code above generates the following result.