在Java中创建ArrayList?
可能重复:在Java中创建ArrayList?,java,list,collections,arraylist,Java,List,Collections,Arraylist,可能重复: 用以下方法创建arraylist有什么区别 List listA = new ArrayList(); and ArrayList alist = new ArrayList(); 在第一种情况下,使用listA将列表的实现隐藏到代码中 这通常是推荐的,因为它(几乎)确保您以后可以更改为另一种类型的列表,而无需检查代码其他部分中的依赖项:使用listA的代码不使用任何特定于ArrayList类的内容,而只使用list接口中定义的内容。首先将列表分配给其接口定义的变量,第二个按类定
用以下方法创建arraylist有什么区别
List listA = new ArrayList(); and ArrayList alist = new ArrayList();
在第一种情况下,使用
listA
将列表的实现隐藏到代码中
这通常是推荐的,因为它(几乎)确保您以后可以更改为另一种类型的列表,而无需检查代码其他部分中的依赖项:使用
listA
的代码不使用任何特定于ArrayList
类的内容,而只使用list
接口中定义的内容。首先将列表分配给其接口定义的变量,第二个按类定义变量
第一个声明将允许您在以后更改实现:
List listA = new LinkedList();
有效,而第二个选项不允许您更改实现:
ArrayList listA = new LinkedList(); // <<<=== INVALID
这是一个长期讨论的问题:) 您应该使用接口而不是具体的类,因为您可以在任何时间点轻松地更改实现
当您想要访问该类的特定功能时,您应该只使用具体类。它是相同的,只是引用类型不同 引用对象时,应该始终使用接口(如List),而不是具体的实现(如ArrayList)
List<ClassA> listA = new ArrayList<ClassA>();