Given the code fragment:



List<String> empDetails = Arrays.asList("100, Robin, HR",
        "200, Mary, AdminServices",
        "101, Peter, HR");
empDetails.stream()
        .filter(s -> s.contains("1"))
        .sorted()
        .forEach(System.out::println); //line n1

What is the result?

A.

100, Robin, HR
101, Peter, HR

B. A compilation error occurs at line n1.
C.

100, Robin, HR
101, Peter, HR
200, Mary, AdminServices

D.

100, Robin, HR
200, Mary, AdminServices
101, Peter, HR

題解

串流物件的filter方法可以保留符合條件的元素,因此在程式第24行之後,串流物件中的元素剩下「100, Robin, HR」和「101, Peter, HR」。sorted方法會排序串流中的元素,若不指定Comparator來排序字串元素,會使用辭典順序來排序,第25行排序之後的順序依然是「100, Robin, HR」在「101, Peter, HR」之前。

程式第26行使用串流的forEach方法將每個元素輸出至標準輸出串流中,所以答案是選項A。