Java ArrayList声明之间的差异

Java ArrayList声明之间的差异,java,arrays,list,generics,arraylist,Java,Arrays,List,Generics,Arraylist,我在网上阅读,看到一个ArrayList的声明 传统上,我认为ArrayList总是被声明为 ArrayList<type> graph = new ArrayList<type>(); 这两者有什么区别?代码的其余部分似乎使用了ArrayList类中相同的函数,但具有特定的索引 来自 不能创建参数化类型的数组。例如,以下代码不编译: 列表[]arrayOfLists=新列表[2];//编译时错误 所以你们是对的,声明列表或集合的唯一正确方法如下: ArrayList&

我在网上阅读,看到一个ArrayList的声明

传统上,我认为ArrayList总是被声明为

ArrayList<type> graph = new ArrayList<type>();
这两者有什么区别?代码的其余部分似乎使用了ArrayList类中相同的函数,但具有特定的索引

来自

不能创建参数化类型的数组。例如,以下代码不编译:

列表[]arrayOfLists=新列表[2];//编译时错误

所以你们是对的,声明列表或集合的唯一正确方法如下:

ArrayList<type> graph = new ArrayList<type>();
ArrayList[]声明ArrayList对象的数组。然后,使用长度numCourses数组初始化图形

当ArrayList[]使用ArrayList时,ArrayList graph使用泛型类型ArrayList并将类型作为类型参数传递

这两者是不能互换的。不能使用数组代替其组件类型。ArrayList[]可能用于规避阻止实例化泛型类型数组的限制。

使用方括号[]创建数组,而使用Biks参数类型传递数组

第二行创建类型为的ArrayList,而第一行创建没有类型的原始ArrayList数组-它们是完全不同的对象


如果您想要一个参数化列表的集合,那么数组不是一个好办法。最好使用嵌套列表:List。

第一个声明原始ArrayList的数组:第二个声明单个ArrayList。@VishwaRatna在问题中询问了两个声明之间的差异。不需要思考。
ArrayList<type> graph = new ArrayList<type>();