如何正确创建ArrayList?

Ern*_*dis 7 java list arraylist

以下是如何创建的两种方法ArrayList:

List<String/*or other object*/> arrList = new ArrayList();//Imports List, ArrayList
ArrayList<String/*or other object*/> arrList = new ArrayList();//Imports just ArrayList
Run Code Online (Sandbox Code Playgroud)

有什么不同?应该使用哪种方法?

Ósc*_*pez 6

建议将第一种形式用于类的公共接口(例如,类中属性的声明).这是一个众所周知的建议,你应该为接口编程,而不是为具体的实现(这在设计模式中说明) - 你必须导入的类的数量与代码的质量和良好的设计几乎没有关系.

第一种形式的优点是,如果需要的话,它将允许您以后轻松交换实现 - 而第二种实现方式与实现类相结合,使您的代码更难以发展并且不那么灵活.

有些情况下,可以声明和使用具体的类(例如,性能稍微提高).但是类的公共接口应尽可能使用接口,这将使未来的更改更容易实现.