use*_*254 2 java collections list arraylist
可能重复:
List与ArrayList作为引用类型?
在以下方面创建一个arraylist的区别是什么?
List listA = new ArrayList(); and ArrayList alist = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
das*_*ght 11
第一个将列表分配给由其接口定义的变量,第二个按类定义变量.
第一个声明将允许您稍后更改实现:
List listA = new LinkedList();
Run Code Online (Sandbox Code Playgroud)
是有效的,而第二个不允许你改变实现:
ArrayList listA = new LinkedList(); // <<<=== INVALID
Run Code Online (Sandbox Code Playgroud)
值得注意的是,从Java 5开始List
是泛型类型,因此您应该指定type参数以提高类型安全性:
List<ClassA> listA = new ArrayList<ClassA>();
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,您将使用的代码隐藏列表的实现listA
.
这通常被推荐,因为它(几乎)确保您以后可以更改为另一种类型的列表,而无需检查代码的其他部分中的依赖项:使用的代码listA
不使用特定于ArrayList
类的任何内容,而只使用List
接口中定义的内容.
归档时间: |
|
查看次数: |
375 次 |
最近记录: |