首页 Java Java入门 ArrayList、LinkedList与Vector三者有什么区别

ArrayList、LinkedList与Vector三者有什么区别

Aug 06, 2020 pm 04:01 PM
arraylist linkedlist vector

ArrayList、LinkedList与Vector三者有什么区别

1、从存储数据结构分析

(推荐教程:java入门教程

ArrayList:数组

Vector:数组

LinkedList:双向链表

数组:可以根据下标快速查找,所以大部分情况下,查询快。

但是如果要进行增删操作的时候,会需要移动修改元素后面的所有元素,所以增删的开销比较大,数组的对增删操作的执行效率低。而采用数组作为数据存储结构的ArrayList、Vector也存在这些特性,查询速度快(可以根据下标直接取,比迭代查找更快),增删慢。

链表:增加和删除元素方便,增加或删除一个元素,仅需处理结点间的引用即可。就像人手拉手连成一排,要增加或删除某个人只要附近的两个人换一个人牵手,对已经牵好手的人没影响。无论在哪里换人耗费的资源和时间都是一样的。

但是查询不方便,需要一个个对比,无法根据下标直接查找。而采用链表结构存储的LinkedList也有这些特性,增删方便,查询慢(指的是随机查询,不是顺序查询)。

2、从继承上分析

928393564ad0d02280068af616f9587.png

它们都实现了List接口,也就是说都实现了get(int location)、remove(int location)等“根据索引值来获取、删除节点的函数”。

(视频教程推荐:java视频教程

数组结构根据下标取值很容易,LinkedList双向列表的实现也比较简单,通过计数索引值实现,从链表长度的1/2开始查找,下标大了就从表头开始找,小了就从表尾开始找。

3、从并发安全上分析

Vector:线程安全

ArrayList:非线程安全

LinkedList:非线程安全

4、数据增长分析

Vector:缺省的情况下,增长为原数组长度的一倍。说到缺省,说明他其实是可以自主设置初始化大小的。

ArrayList:自动增长原数组的50%。

以上是ArrayList、LinkedList与Vector三者有什么区别的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java ArrayList遍历时使用foreach和iterator删除元素的区别是什么? Java ArrayList遍历时使用foreach和iterator删除元素的区别是什么? Apr 27, 2023 pm 03:40 PM

一、Iterator和foreach的区别多态差别(foreach底层就是Iterator)Iterator是一个接口类型,他不关心集合或者数组的类型;for和foreach都需要先知道集合的类型,甚至是集合内元素的类型;1.为啥说foreach底层就是Iterator编写的代码:反编译代码:二、foreach与iterator时remove的区别先来看阿里java开发手册但1的时候不会报错,2的时候就会报错(java.util.ConcurrentModificationException)首

如何在Java中检查ArrayList是否包含某个元素? 如何在Java中检查ArrayList是否包含某个元素? Sep 03, 2023 pm 04:09 PM

您可以利用List接口的contains()方法来检查列表中是否存在对象。contains()方法booleancontains(Objecto)如果此列表包含指定的元素,则返回true。更正式地说,如果且仅当此列表包含至少一个元素e,使得(o==null?e==null:o.equals(e)),则返回true。参数c-要测试其在此列表中是否存在的元素。返回值如果此列表包含指定的元素,则返回true。抛出ClassCastException-如果指定元素的类型与此列表不兼容(可选)。NullP

使用java的ArrayList.remove()函数移除ArrayList中的元素 使用java的ArrayList.remove()函数移除ArrayList中的元素 Jul 24, 2023 pm 01:21 PM

使用java的ArrayList.remove()函数移除ArrayList中的元素在Java中,ArrayList是一种常用的集合类,用于储存和操作一组元素。ArrayList类提供了许多方法来增删改查集合中的元素。其中一个使用频率较高的方法是remove(),它可以移除ArrayList中的元素。ArrayList的remove()方法有两种重载形式,一

使用LinkedList类的removeLast()方法删除链表中的最后一个元素 使用LinkedList类的removeLast()方法删除链表中的最后一个元素 Jul 24, 2023 pm 05:13 PM

使用LinkedList类的removeLast()方法删除链表中的最后一个元素LinkedList是Java集合框架中常见的一种数据结构,它以双向链表的形式存储元素。通过LinkedList类提供的方法,我们可以方便地对链表进行操作,例如添加、删除和修改元素。在某些场景下,我们可能需要删除链表中的最后一个元素。LinkedList类提供了removeLas

Java中ArrayList初始化容量大小为10的原因是什么 Java中ArrayList初始化容量大小为10的原因是什么 May 10, 2023 pm 02:19 PM

为什么HashMap的初始化容量为16?在聊ArrayList的初始化容量时,要先来回顾一下HashMap的初始化容量。这里以Java8源码为例,HashMap中的相关因素有两个:初始化容量及装载因子:/***Thedefaultinitialcapacity-MUSTbeapoweroftwo.*/staticfinalintDEFAULT_INITIAL_CAPACITY=1>1);if(newCapacity-minCapacity0)newCapacity=hugeCapacity

使用java的ArrayList.clear()函数清空ArrayList中的元素 使用java的ArrayList.clear()函数清空ArrayList中的元素 Jul 24, 2023 pm 02:04 PM

使用Java的ArrayList.clear()函数清空ArrayList中的元素在Java编程中,ArrayList是一种非常常用的数据结构,它可以动态地存储和访问元素。然而,在某些情况下,我们可能需要清空ArrayList中的所有元素,以便重新使用或释放内存。这时,就可以使用ArrayList的clear()函数来实现。ArrayList.clear()

Java使用ArrayList类的contains()函数判断元素是否存在 Java使用ArrayList类的contains()函数判断元素是否存在 Jul 24, 2023 pm 07:33 PM

Java使用ArrayList类的contains()函数判断元素是否存在在Java编程中,ArrayList是一个非常常用的数据结构。它提供了一种灵活的方法来存储和操作一组数据。除了简单的添加、删除和访问元素之外,ArrayList还提供了一些有用的方法,例如contains()函数,用于判断元素是否存在于ArrayList中。contains()函数是A

在Java中从ArrayList获取唯一值 在Java中从ArrayList获取唯一值 Sep 04, 2023 am 08:41 AM

ArrayList 是实现 List 接口的 Java Collection Framework 类。它是顺序存储和访问每个元素的线性结构。它允许存储重复元素,但有几种方法可能有助于从 ArrayList 获取唯一值。

See all articles