,linkedlist和arraylist和vector的区别

  ,linkedlist和arraylist和vector的区别

  如何解决写爬虫IP受阻的问题?立即使用。

  1、从存储数据结构分析

  (推荐教程:java入门)

  数组列表:数组

  向量:数组

  LinkedList:双向链表

  数组:可以根据下标快速搜索,所以大多数情况下,查询很快。

  但是如果要添加或删除,就需要将所有的元素都移动到修改后的元素后面,所以添加或删除的成本比较大,执行数组的添加或删除操作的效率较低。使用数组作为数据存储结构的ArrayList和Vector也有这些特点。它们查询速度快(可以直接根据下标检索,比迭代搜索快),增删慢。

  链表:添加和删除元素很方便。要添加或删除一个元素,只需要处理节点之间的引用。就像一排牵手的人,如果想增删一个人,只要把附近的两个人换成一个人牵手就行了,对已经牵手的人没有影响。无论你在哪里换人,都需要同样的资源和时间。

  但是查询不方便,需要一个一个比较,不能直接根据下标搜索。以链表结构存储的LinkedList也有这些特点,增删方便,查询慢(指随机查询,不是顺序查询)。

  2、从继承上分析

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

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

  结构很容易按照下标取值,LinkedList双向链表的实现也比较简单。它是通过计算索引值来实现的,从链表长度的1/2开始,下标大的时候从表头开始,下标小的时候从表尾开始。

  3、从并发安全上分析

  向量:线程安全

  数组列表:非线程安全

  LinkedList:非线程安全

  4、数据增长分析

  Vector:默认情况下,它增加到原始数组长度的两倍。说到默认,说明他其实可以自己设置初始化大小。

  ArrayList:自动增长原始数组的50%。这就是ArrayList,LinkedList和Vector区别的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: