八股复习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有索引就是查询快


相关推荐
可涵不会debug7 分钟前
C++ std::bind 实战教程:线程池、回调场景全覆盖
linux·开发语言·c++
不正经的码狗11 分钟前
Java 开发环境搭建与 Eclipse 使用速通教程
java·开发语言·eclipse
用户81818706274611 分钟前
第37章 Java应用在K8s里的经典坑:容器内存/CPU limit与JVM参数不匹配导致的OOMKilled
java·后端
马剑威(威哥爱编程)24 分钟前
【AI全栈后端12-03】Spring Boot 用多模型路由把智能客服成本降下来
java·人工智能·spring boot
阿钱真强道25 分钟前
24 嵌入式操作系统 | 项目启动与环境准备(PyQt5 / Flask 两个“最小可跑“)
开发语言·qt·flask·架构设计·协议契约
霸道流氓气质29 分钟前
AI模型幻觉检测与抑制完全指南:从规则引擎到RAG对比的Java生产级实战
java·开发语言·人工智能
前端 贾公子33 分钟前
LangChain核心组件 == 提示词(Prompts)
开发语言·c#
niucloud-admin40 分钟前
JAVA V6 多商户商城 开发文档——手机端前端
java·开发语言·前端
茉莉玫瑰花茶43 分钟前
GO [ 并发 ]
开发语言·后端·golang
云安全助手1 小时前
自建接入VS聚合平台:企业 AI 调用的选型思路与迁移成本拆解
java·大数据·数据库·人工智能·ai大模型