Given:
import java.util.ArrayList;
import java.util.List;
public class Whizlabs {
public static void main(String[] args) {
List<int> list = new ArrayList<>();
list.add(21); list.add(13);
list.add(30); list.add(11);
list.removeIf(e -> e % 2 != 0);
System.out.println(list);
}
}
What is the output?
A. [21, 13, 11]
B. [30]
C. []
D. Compilation fails due to error at line 7
E. Compilation tails due to error at line 10
題解
程式第7行使用到Java的泛型(generic)功能,但是用的並不正確,原因在於泛型不能用在基本資料型態。如果將這裡的「int」改為「Integer」的話,程式的執行結果為:
[30]
程式第10行是Java 8的Lambda和Collection的新特性,removeIf會把Collection物件內所有符合條件的元素刪除,在這裡就是把奇數全部刪除。
可以參考這篇文章來了解Lambda: