LinkedList与链表

[学习目标]

  1. ArrayList的缺点
  2. 认识链表
  3. 如何使用LinkedList
  4. ArrayList与LinkedList的区别                                                                                      \

1.ArrayList的缺点

缺点: ArrayList的底层是用数组来存储数据的, 在物理层面上是一段连续空间,所以当想在ArrayList任意位置插入或删除时,就需要将元素往后或往前覆盖 ,导致时间复杂达到O(n),效率大大折扣 , 说明ArrayList不适合插入和删除多的业务场景, 因此程序员在java集合中引入了LinkedList(链表).

2.认识链表

链表的概念及结构

概念: 链表是一种物理存储机构非连续的存储结构, 顺序是通过链表中的指针链         接次序实现的

链表结构

2.1 单向或双向

2.2.带头或者不带头

2.3.循环或不循环

实际链表的结构还不止如此, 以上结构就可以组合8种了, 虽然有许多的的链表结构, 我们掌握2种重点结构就可以了.

无头单向非循环链表: 结构简单,主要用于其他数据结构的子结构 , 也是面试中的常客.

无头双向链表:Java集合框架库中LinkedList底层实现的就是无头单向链表.

3.LinkedList的使用

     3.1 什么是LinkedLiset

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

在集合框架中, LinkedList也实现了List接口,具体如下

             

3.2. LinkedList的使用

              1.LinkedList的构造方法

2.LinkedList的常用方法介绍

  1. ArrayList和LinkedList的区别

[总结]

ArrayList和LinkedList两者之间各有优点

ArrayList: 基于顺序表实现, 支持快速的随机访问(get和set操作),因为可以直接通过索引访问元素,无需遍历

LinkedList: 基于双向链表实现,插入和删除操作效率较高,因为只需要改变相邻节点的引用,而不需要移动大量数据。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值