当前位置: 首页 > article >正文

java面试题-ArrayList 和 LinkedList 的区别是什么

远离八股文,面试大白话,通俗且易懂

看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。

java面试题汇总-目录-持续更新中​​​​​​​

ArrayList 与 LinkedList 都是 List 接口的实现类,因此都实现了 List 的所有未实现的方法,只是实现的方式有所不同。

具体如下:

1.ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。

 2.对于随机访问:

ArrayList因为是基于数组存储数据,所以,可以根据下标进行快速检索,时间复杂度是O(1)

LinkedList基于双向链表,每一个元素都是依靠地址和指针连接在一起,这时候查找某个元素的时间复杂度是O(n)

 3.对于插入和删除操作:

ArrayList需要重新计算数组大小以及更新索引。

LinkedList则直接通过指针重新指向进行新增和删除数据。所以LinkedList优于ArrayList

 4.LinkedList比ArrayList更占内存空间。因为双向链表除了存储数据外,还需要存储两个引用,一个指向前一个元素一个指向后一个元素。


http://www.kler.cn/a/160653.html

相关文章:

  • react-redux useSelector钩子 学习样例 + 详细解析
  • 深入探索离散 Hopfield 神经网络
  • 前端,location.reload刷新页面
  • 记录使用documents4j来将word文件转化为pdf文件
  • 设计模式练习(一) 单例模式
  • 论文解析:边缘计算网络中资源共享的分布式协议(2区)
  • WebStorm:Mac/Win上强大的JavaScript开发工具
  • 第十一节HarmonyOS 常用容器组件2-List和Grid
  • Linux学习笔记3 xshell(lnmp)
  • Harmony OS (eTS语言)的起源和演进
  • Android12蓝牙框架
  • 如何在Spring Boot中优雅地重试调用第三方API?
  • BearPi Std 板从入门到放弃 - 引气入体篇(8)(ADC)
  • 第三方支付通道的优势之(二)-----代扣
  • 【C++】时间time库
  • Stm32_串口的帧(不定长)数据接收
  • 在Linux系统中更换yum源为阿里云
  • postgreSql存储jsonb
  • GitLab发展史,这一篇你知道就够了
  • sqlite - sqlite3_exec - c++回调函数的处理
  • 要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 14 章:受控生成提示
  • 浅谈web性能测试
  • Python实现FA萤火虫优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战
  • 深度学习——第2章 深度学习开发环境搭建
  • Centos7安装GItLab(在线版)
  • LangChain 22 LangServe用于一键部署LangChain应用程序