java - List和ArrayList在声明上的区别?

标签 java list arraylist declaration array-difference

这两者有区别吗?如果是的话,那是什么?

List<Integer> x = new ArrayList<Integer>();

ArrayList<Integer> x = new ArrayList<Integer>();

最佳答案

第一个声明允许您对接口(interface)进行编程。它确保您稍后可以安全地替换 ArrayList比如说,LinkedList ,其余代码将被编译。

第二个声明允许您对该类进行编程,因此您可以使用 ArrayList 的方法没有实现List界面。例如,您可以调用 ensureCapacity()在声明为 ArrayList 的列表中,但不在声明为 List 的列表中。虽然通常应该首选接口(interface)编程,但如果必须调用特定于类的方法,那么这样做并没有什么错:例如,能够调用 ensureCapacity()如果您知道列表的新目标大小,可以节省一些不必要的重新分配。

关于java - List和ArrayList在声明上的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467186/

相关文章:

java - 在 Eclipse 中使用图像创建按钮不起作用

java - 如何在 objectify 中基于 JodaTime 进行过滤

java - Netty channel 管道是否发生在同一线程上?

python - 元音列表 : weird lambda expression

java - ComboBox 将所有值加在一起作为一个值

java - 创建多个列表或创建对象列表哪个更快?

java - Eclipse 直到运行时才报告错误

javascript - 平面 JSON 展开为具有多个父级的层次结构作为字符串

python - 将一个列表中的特定行附加到另一个列表

java - 如何循环ArrayList并将每个值发送到下载管理器?