arraylist和list的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arraylist和list的区别是啥?相关的知识,希望对你有一定的参考价值。

arraylist和vector的区别是什么呢?视频详细介绍,分分钟懂了

参考技术A ArrayList: ArrayList是命名空间System.Collections下的一部分,在使用该类时必须进行引用,同时继承了IList接口,提供了数据存储和检索。ArrayList对象的大小是按照其中存储的数据来动态扩充与收缩的。所以,在声明ArrayList对象时并不需要指定它的长度。所有加入的数据均为object,使用需要装箱与拆箱。
泛型List: List是命名空间System.Collections.Generic下,因为ArrayList存在不安全类型与装箱拆箱的缺点,所以出现了泛型的概念。List类是ArrayList类的泛型等效类,它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。

简单说:都是集合,ArrayList t类型不安全,因为加入的数据为object类型,所以需要装箱与拆箱,效率较低。
List:声明时就决定了类型,所以是类型安全的,省掉了装箱与拆箱的过程,效率比ArrayList要高。

List 和 ArrayList 有啥区别? [复制]

【中文标题】List 和 ArrayList 有啥区别? [复制]【英文标题】:What is the difference between List and ArrayList? [duplicate]List 和 ArrayList 有什么区别? [复制] 【发布时间】:2013-01-31 22:14:07 【问题描述】:

我最近在办公室的android项目中一直在使用ArrayList,我对List和ArrayList有点困惑,两者有什么区别,我应该使用什么?

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

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

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

这两个实例有什么区别?

【问题讨论】:

Type List vs type ArrayList in Java、Java List vs ArrayList 和 List vs ArrayList 的可能重复项;还有List Vs. ArrayList和much more! ***.com/questions/6867484/… 一个是接口,一个是类。现在你可以自己找出来了。 【参考方案1】:

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

当您将列表定义为:

List myList = new ArrayList();

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

ArrayList myList = new ArrayList();

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

然而,当你调用第一个例子中List接口的方法时,它是在ArrayList中实现的,ArrayList中的方法会被调用(因为List接口没有实现任何方法)。

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

【讨论】:

List 不是一个类,它是一个接口。它没有实现任何方法。因此,如果您在 List 引用上调用方法,实际上您在两种情况下都调用了 ArrayList 的方法。 有一个区别,正如@robonerd 上面解释的那样。 List 是一个接口,你不仅可以使用类或原始类型来键入变量,还可以使用接口。 各位,请仔细阅读我的帖子。不要将定义与实现混为一谈。在这两种情况下,实现都是相同的:ArrayList。变量的定义不同。不确定您要在我​​的回答中更改什么。 @ATrubka,在这两个例子中,如果我调用一个方法,它将执行 ArrayList 类中的方法,那么定义 List myList = new ArrayList(); 有什么用 这样你就可以将你的代码与 List 接口的特定实现分离。如果后来有人认为 LinkedList 更好,那么唯一改变的就是分配。上面的例子太微不足道了,无法证明它的好处。现实生活中的例子有更多。例如,将有一个将 List 作为参数而不是 ArrayList 的方法。看看 Collections.sort() 和 Collections 类的其他方法。

以上是关于arraylist和list的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题|Array和ArrayList有何区别?

Arrays.asList(array) 和 new ArrayList<Integer>(Arrays.asList(array)) 的区别

Java的数据结构你用过哪些?Map与Set的本质区别是啥?

HashTable和ArrayList的主要区别是啥

在Java中ArrayList、LinkedList、HashMap的区别是啥

在Java中ArrayList、LinkedList、HashMap的区别是啥