声明包含列表列表的列表

时间:2016-01-02 20:16:51

标签: java list generics linked-list declaration

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<>();

我无法理解为什么只有第三和第四个陈述有效。

1 个答案:

答案 0 :(得分:3)

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

List开头的第二次初始化无法正常工作,因为new是一个接口,而不是一个类,因此无法使用1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 11, 13, 14, 15, 12 运算符进行初始化。