八股复习2:Java Array list和Linked list

又是我们经典的数据结构!!

虽然它们都是list,但是内部的结构不同:

------------------------------------------------Arraylist ------------------------------------------------------------------

Arraylist是序号数组,每一个元素都有一个自己的index,也就是索引

嗨嗨嗨!看到这个索引你就知道了!Arraylist查询很快!!!

但是缺点就是修改不是很方便,这个数据结构修改的特点是牵一发而动全身的:

比如删除一个元素,需要移动整个元素来补齐刚刚空缺的位置,就像是体育课有一列空了一位同学,那么这一列后面的同学就来补齐整个列队一样

Arraylist操作中间的元素比较麻烦,那么头和尾呢?

头尾缺失快,但是也有弊端💦哈哈哈

如果空间还足够的时候,还是比较快的:时间复杂度为O(1)

当插入并且扩容时,就还是会变慢:O(n)

总之Arraylist适合查询,而不是修改操作

------------------------------------------------Linked list------------------------------------------------------------------------------------

看到Linked list就知道和链表肯定有关系!!

这个实际上就是双向链表

看到链表就知道修改比较方便了!!

链表修改只需要修改某两个指针的指向,而其他元素是不需要移动的,整体的性能非常快!

但是查询的时候只依靠指针移动来查询,因此查询性能不怎么样

总之Linkedlist是修改快,但是查询不怎么样

------------------------------------------------总结------------------------------------------------------------------------------

1.Array list 适用于 查询场景

2.linked list适用于 修改场景

实际使用的时候根据场景需求选择即可

嗨嗨嗨嗨!!!!实际上根据字面英文意思理解性记忆即可,Array数组,Linked链表

然后再根据不同的意思来延伸即可:比如链表就是适合修改,Array有索引就是查询快


相关推荐
Ramble_Naylor3 分钟前
东方通(TongWeb)SpringBoot开发指导
java·spring boot
大鹏说大话8 分钟前
SQL 排序与分组实战:解决“分组后取最新数据“
android·java·数据库
云烟成雨TD15 分钟前
Spring AI Alibaba 1.x 系列【64】 ReactAgent 长期记忆
java·人工智能·spring
quan263126 分钟前
20260529,日常开发-数据库主从问题
java·mysql·主从·延迟
JacksonMx1 小时前
@Transactional 最佳实践
java·spring boot·spring·性能优化
Sincerelyplz1 小时前
【AI会议纪要实践】mapReduce、RAG 与结构化输出
java·后端·agent
过期动态1 小时前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展
bug和崩溃我都要1 小时前
Qt 封装 libmpv 全功能视频播放器开发指南
开发语言·qt·音视频
郝学胜-神的一滴1 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军1 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法