为什么不能初始ArrayList<ArrayList<>> 而要ArrayList<List<>> ?
来源:6-4 队列的典型应用 Binary Tree Level Order Traversal
weixin_慕沐9302940
2020-08-13
bobo老师你好
在102题inoder binary tree level order 您的答案中有这样的语句ArrayList<List<Integer>> res = new ArrayList<List<Integer>>();
为什么当我写成如下会报错说data type不符合呢? 为什么不能如此初始化?ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
List<List<Integer>> res = new List<List<Integer>>();
写回答
1回答
-
List<List<Integer>> res = new List<List<Integer>>();
不可以,是因为 List 是一个接口,不能实例化;
List<List<Integer>> res = new ArrayList<List<Integer>>();
这样写是可以的。
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); 语法本身没问题,但是因为这个问题返回的类型是List<List<Integer>>,res 作为返回值,其泛型类型要和这个返回值的泛型类型保持一致,即泛型类型必须是 List<Integer> 的。
继续加油!:)
112020-08-14
相似问题