3 回答
TA贡献1858条经验 获得超8个赞
这是因为anArrayList<ArrayList<Integer>>
不是List<List<Integer>>
。
原因是aList<List<Integer>>
是您应该能够添加LinkedList<Integer>
到的东西。但是您不能将LinkedList<Integer>
an添加到an,ArrayList<ArrayList<Integer>>
因为它是错误的类型。
因此,如果您有个ArrayList<ArrayList<Integer>>
,则永远不能将其视为List<List<Integer>>
,也不能使用类型为变量的变量对其进行引用List<List<Integer>>
TA贡献1878条经验 获得超4个赞
这是Java泛型。List<List<Integer>> ans = new ArrayList<ArrayList<Integer>>()
因为外部列表期望自己保持不变List<Integer>
,所以它不起作用ArrayList<Integer>
。
考虑一下:
List<Number> list = new ArrayList<Integer>();
这也不起作用,因为该列表期望Number
而不是Integer
。
无论如何,在嵌套列表时,您还需要实例化内部列表。列表列表不能像多维数组那样工作。
TA贡献1842条经验 获得超12个赞
但我无法实例化ArrayLists的ArrayList吗?
因为您将类型指定ans
为“列表列表”而不是“ ArrayLists列表”。
List<List<Integer>> ans = new ArrayList<ArrayList<Integer>>();
上面没有用
我想如果声明将是可行的:
List<? extends List<Integer>> ans = new ArrayList<ArrayList<Integer>>();
添加回答
举报