-1

你好,我是Java初学者,在Java讲座中学习了面向对象编程的“ArrayList”,但是今天遇到了“List”,不知道怎么用,那么ArrayList和ArrayList有什么区别呢?列表?他们有什么相同的属性?

就像是:

           List<...>list=new List<...>()
           ArrayList<...>list=new ArrayList<...>()
4

4 回答 4

4

List是一个接口,而ArrayList是一个实现该接口的具体类

于 2013-10-08T20:08:28.503 回答
1

List是一个接口。

ArrayList是一个实现List.

你不能实例化一个接口,你必须实例化一个实现它的类。

于 2013-10-08T20:08:52.920 回答
0

List是一个接口,本质上提供了一个操作列表(添加、删除、获取...),但没有实现(你不能这样做new List)。有几个类实现List接口的类,包括ArrayList(如前所述,使用数组作为内部容器),例如,LinkedList. 相反,您可以实例化这些,然后编写:

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

如果你想替换,使用List作为一种类型可以减少工作量myListArrayListLinkedList减少工作量:

List<ElementType> myList = new LinkedList<ElementType>();

(想象一下,如果您不得不在几个地方替换为)ArrayListLinkedList此外,您将隐藏背后的实际实现,以便其他程序员不会对List可能的行为方式做出棘手的假设。

于 2013-10-08T20:11:08.093 回答
0

List定义预期实现将提供的基本合同。 ArrayList是由动态数组支持的此合约的实现。

这个想法的好处是,如果您有一个需要访问某种 的方法List,您可以简单地要求调用者将 的任何实现传递给您List,这意味着您不需要知道或关心List实际是如何实现的,只需它将提供由List

您不能List直接创建实例,您需要使用其中一种实现,例如ArrayListLinkedList...

例如...

List<String> listOfStrings = new ArrayList<String>(25);
List<String> anotherListOfStrings = new LinkedList<String>();
于 2013-10-08T20:12:41.103 回答