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
101, Peter, HR
B. A compilation error occurs at line n1.
C.
100, Robin, HR
101, Peter, HR
200, Mary, AdminServices
101, Peter, HR
200, Mary, AdminServices
D.
100, Robin, HR
200, Mary, AdminServices
101, Peter, 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。