我对ArrayList和List有疑问。 在这种情况下,我们应该使用ArraryList,如:
ArrayList obj = new ArrayList();
在这种情况下,我们应该使用List Interface。
List obj = new ArrayList();
他们之间有什么区别?
答案 0 :(得分:1)
如果需要调用特定于实现的方法,请使用实现。
当你写:
List obj = new ... //ArrayList() or LinkedList()
编译器只知道obj是List
。因此,您不能使用特定于一个实现的方法。
例如,如果您需要访问LinkedList
的最后一个元素,则需要声明如下:
LinkedList = obj = new LinkedList();
现在,obj
是LinkedList
。因此,您可以使用obj.last()
。
答案 1 :(得分:0)
如果你想使用特定于ArrayList的方法,你想要第一种情况,否则最好使用第二种情况。对于第二种情况,如果要切换到不同的List实现,则无需进行更改。