在大多数使用集合的Java代码中,我看到了类似的内容。
List<String> list = new ArrayList<String>();
但是我一直想知道为什么它比
ArrayList<String> = new ArrayList<String>();
我研究了一下,但并不能理解很多。
最佳答案
因为当通过其接口使用对象时,您以后可以更改实现。例如:
public ArrayList<String> doSomething(..) {
...
return arrayList;
}
但是过了一会儿,
ArrayList
似乎对于此方法的调用者最常用的效率低下,因此您决定将其更改为LinkedList
。List
,则表示已完成ArrayList
,则应转到该方法被调用的所有位置并进行更改。如果有人使用了特定于arraylist的方法,该怎么办-您必须考虑如何重构它。那是个好方案。如果您的代码是库,而其他分支机构/公司正在使用它,则您可能会陷入效率低下的代码中。 也可以看看: