List 和 ArrayList 之间有什么区别?

2022-08-31 07:04:35

我最近在办公室的Android项目中使用了ArrayList,我在List和ArrayList之间有点困惑,两者有什么区别,我应该使用什么?

我也看到了它的一些实现。

List<SomeObject> myList = new ArrayList<SomeObject>();

ArrayList<SomeObject> myList = new ArrayList<SomeObject>();

这两个实例有什么区别?


答案 1

在两个示例中,列表实现之间没有区别。但是,在代码中可以进一步使用变量 myList 的方式上存在差异。

当您将列表定义为:

List myList = new ArrayList();

您只能调用在 List 接口中定义的方法和引用成员。如果将其定义为:

ArrayList myList = new ArrayList();

您将能够调用特定于 ArrayList 的方法,并使用特定于 ArrayList 的成员,以及那些其定义继承自 List 的成员。

但是,当您在第一个示例中调用 List 接口的方法(该方法在 ArrayList 中实现)时,将调用 ArrayList 中的方法(因为 List 接口不实现任何方法)。

这就是所谓的多态性。你可以阅读它。


答案 2