在定义2D动态数组时,为什么我不能像这样定义它:
List<List<Integer>> t=new List<List<Integer>();
这样做,我得到一个错误说:
Cannot instantiate the type List<List<Integer>>
我开始知道这是最好的做法 -
List<List<Integer>> t=new Arraylist<List<Integer>>();
为什么会如此。有人帮助我理解这一点。
答案 0 :(得分:5)
List is an interface因此不能使用new来创建它的新实例,你需要实现它的类,例如ArrayList
List<List<Integer>> t=new ArrayList<List<Integer>>();
or since java 7
List<List<Integer>> t = new ArrayList<>();
答案 1 :(得分:0)
因为在Java中,List是一个接口,所以无法对其进行初始化。 你可以这样做;
List<t> list = new ArrayList<t>();
只需初始化任何实现List Interface
的类型