我正在为 Android 开发并想知道,ArrayList 和 List 之间的主要区别是什么?
5 回答
对于Java中对象集合的处理,提供了Collection接口。这在java.util package
.
“List”是一个接口,它扩展了集合接口,提供了一些比集合接口额外的方法来处理集合。其中“ArrayList”是“List”接口的实际实现。
除了 List接口中可用的方法之外,ArrayList 类只有几个方法。这没有太大区别。唯一的区别是,您在第一个中创建父接口的引用,并在第二个中创建实现 List(即)ArrayList 类的类的引用。如果你使用第一个,你将能够调用 List 接口中可用的方法,你不能调用 ArrayList 类中可用的新方法。而如果你使用第二个,你可以自由使用所有ArrayList 中可用的方法。
编辑:
在 Java 应用程序开发中,当您应该将集合框架对象作为参数传递给方法时,最好使用
List tempList = new ArrayList();
somemethodcall(tempList);
因为,将来由于性能限制,如果您要更改实现以使用链表或其他一些实现 List 接口的类,而不是 ArrayList,则只能在一个点(即)仅更改实例化部分。否则,您将应该在所有区域进行更改,无论何时,您都使用特定的类实现作为方法参数。
user370305 给出了准确的解释。这也可以帮助您理解 Java 中的集合层次结构。
List
是ArrayList
实现的接口。如果您正在尝试创建一个需要List
某种类型的方法,但您并不关心实际使用的是什么实现,那么请使用List
.
如果您实际上是在实例化一个类,那么您必须选择其中List
一个的一些实现是ArrayList
List<String> l1 = new ArrayList<String>();
将是一个例子。
您无法实例化接口,因此如果您尝试执行以下操作会出现错误:
List<String> l2 = new List<String>();
维基百科上有一篇很好的文章,其中数组列表被称为“动态数组”。
如果您正在尝试优化您的应用程序,您应该查看文章旁边的表格。
List
是一个接口,ArrayList
是接口的一个实现List
。除了接口中可用的方法之外,该类ArrayList
只有几个方法。List