用列表列表声明一个列表

Declare a list with list of lists

List<List<Integer>> l = new LinkedList<LinkedList<Integer>>();
List<List<Integer>> l2 = new List<LinkedList<Integer>>();
List<List<Integer>> l3 = new LinkedList<List<Integer>();
List<List<Integer>> l4 = new LinkedList<>();

我不明白为什么只有第三个和第四个语句有效。

第一个声明不起作用,因为 LinkedList<LinkedList<Integer>> 不是 List<List<Integer>>。例如,通过声明,您可以将 ArrayList<Integer> 添加到 List<List<Integer>>(整数列表的列表)。但是,无法将 ArrayList<Integer> 添加到 LinkedList<LinkedList<Integer>>(整数链表的链表)。

第二次初始化,从new List开始无法工作,因为List是一个接口,而不是class,所以它不能用[=18=初始化] 运算符。