栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构---继续走进Linked List

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构---继续走进Linked List

目录:

一:ArrayList的缺陷

二:linkedList的使用

三:linkedList的使用

3.1:linkedList的构造

3.2:linkedList的其他常用方法

3.3:linkedList的遍历

四:总结


一:ArrayList的缺陷

 ArrayList底层使用数组来存储元素:由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。

因此:java集合中又引入了linkedList,即链表结构。

二:linkedList的使用

linkedList的底层是双向链表结构(不仅知道后面的在哪,还知道前面的在哪)

由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。

 【说明】

  • linkedList实现了List接口
  • linkedList的底层使用了双向链表
  • linkedList没有实现RandomAccess接口,因此linkedList不支持随机访问
  • linkedList的任意位置插入和删除元素时效率比较高,时间复杂度为O(1)

三:linkedList的使用

3.1:linkedList的构造
方法解释
linkedList()无参构造
public linkedList(Collection<?extends E>c)使用其他集合容器中元素构造List

 3.2:linkedList的其他常用方法

 注意: get方法不咋用,因为链式结构要找任意位置的元素不太好找,时间复杂度就成O(N)了。 

3.3:linkedList的遍历

注意:第一种通过get()方法遍历是效率最慢的,因为时间复杂度是O(N) 。

四:总结

List:

  • 接口------>规范了许多方法
  • 继承Collection接口
  • 从数据结构角度--->线性表

ArrayList:

  • 实现了List接口
  • 底层使用一个数组(连续空间)存储元素
  • 从数据结构角度--->动态类型的顺序表

linkedList:

  • 实现了List接口
  • 底层使用双向链表结构存储管理元素
  • 从数据结构角度--->双向链表

Vector:

  • 实现List接口
  • 底层使用数组(连续空间)存储元素
  • 从数据结构角度--->动态类型顺序表
  • 线程安全

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号