这两者有区别吗?如果是的话,那是什么?
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/