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

Java基础面试-ArrayList和LinkedList的区别

ArrayList:

基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制: 因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能、甚至超过linkedList (需要创建大量的node对象)

LinkedList:

基于链表,可以存储在分散的内存中,适合做数据插入及删除操作,不适合查询: 需要逐一遍历

遍历LinkedList必须使用iterator不能使用for循环,因为每次for循环体内通过get()取得某一元素时都需要对list重新进行遍历,性能消耗极大。
另外不要试图使用index0f等返回元素索引,并利用其进行遍历,使用indexl0f对list进行了遍历,当结果为空时会遍历整个列表。

http://www.lryc.cn/news/194163.html

相关文章:

  • 如何从 Pod 内访问 Kubernetes 集群的 API
  • 计网面试复习自用
  • 【Android 性能优化:内存篇】——WebView 内存泄露治理
  • C++入门(一)
  • C#控制台程序读取输入按键非阻塞方式
  • 小程序框架->框架,视图层,生命周期(逻辑层)
  • Spring framework Day14:配置类的Lite模式和Full模式
  • 公司要做大数据可视化看板,除了EXCEL以外有没有好用的软件可以用
  • 掌握深入挖掘数据本质的方法
  • MyBatisPlus的学习项目页面
  • 基于EtherCAT的机器人多轴同步运动控制
  • 彩虹易支付 9.27 最新版加订单查询 sy 更新版
  • python树状打印项目路径
  • mysql误删误操作恢复数据,比传统方式和binlog2sql更快速用的恢复方式-reverse_sql恢复数据(单表多表)
  • CORE: Cooperative Reconstruction for Multi-Agent Perception 论文阅读
  • MySQL连接方式: Unix套接字 TCP/IP
  • TSINGSEE青犀智慧城市数字基座解决方案,助力城市数字化转型
  • 【JavaEE】初识网络
  • UGUI交互组件ScrollBar
  • DamiBus v0.51 发布
  • [OpenJDK:环境变量配置]:填充Profile并修改默认配置
  • 连接mysql报错 :Host ‘xxx.xx.x.x‘ is not allowed to connect to this MySQL server
  • Qt 布局(QSplitter 类QDockWidget 类) 总结
  • git-ssh-key协议同步文件
  • 2018-2019 ACM-ICPC, Asia Nanjing Regional Contest G. Pyramid(组合数学 计数)
  • C++学习——string 详解(即C++字符串详解)
  • LeetCode 1 两数之和
  • 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程
  • 【1day】用友U8Cloud未授权访问漏洞学习
  • 基于单片机智能汽车仪表设计系统