当前位置: 首页 > 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/news/160653.html

相关文章:

  • 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应用程序
  • ubuntu 18.04 pycharm安装
  • 前端使用插件预览pdf、docx、xlsx、pptx格式文件
  • Python之random和string库学习
  • XIAO ESP32S3之AI教程
  • 外包干了一个月,技术明显进步。。。。。
  • 如何5分钟用ChatGPT分析大厂的最新动向?判断最新发展趋势
  • Nginx配置反向代理与负载均衡
  • elasticsearch 是如何实现 master 选举的?
  • UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
  • Android studio 工程的 module 依赖关系图绘制 、 Android Module 依赖关系的可视化实现