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: