gpt4 book ai didi

java - 如何声明一个ArrayList?

转载 作者:行者123 更新时间:2023-12-01 16:34:23 30 4
gpt4 key购买 nike

Possible Duplicate:
Why should the interface for a Java class be prefered?

我对java比较陌生,我刚刚开始使用集合框架。开启时ArrayList我遇到过人们声明它的两种方式。例如声明 ArrayListString s:

List<String> l = new ArrayList<String>();

ArrayList<String> al = new ArrayList<String>();

我应该使用这两者中的哪一个?它们之间有什么区别?

我知道实际调用的方法是在运行时决定的,因此调用的方法都是 ArrayList仅类,但第一个声明仍然限制可以调用的方法。

我听说,第一种方法称为“编码到接口(interface)”。任何方法都将使用变量l来调用因此只有 List 提供的方法可以调用接口(interface),而在第二个示例中,我们不仅可以调用List提供的所有方法。但通过Object类(如 finalize()wait() 等)。那么为什么人们一开始就使用第一个声明呢?

最佳答案

您应该始终使用尽可能最少的特定接口(interface)。如果存在更合适的实现,这使得更容易替换替代实现。例如,采用 List 的方法并不关心列表是链表还是数组列表。您可以选择更合适的一个。

关于java - 如何声明一个ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999280/

30 4 0