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

ArrayList和LinkedList区别

List<TreeNode> list = new ArrayList<TreeNode>(); 

List<TreeNode> allTrees = new LinkedList<TreeNode>();

这两行代码都是用来创建一个存储多个 TreeNode 对象的列表,但是它们使用的底层实现不同。

ArrayList 是一种数组实现的动态数组,它的底层是一个数组

LinkedList 是一种链表实现的动态数组,它的底层是一个链表。

两种实现有自己的优缺点:

  • ArrayList 查询和访问元素速度快,因为它是通过下标来访问元素的,但插入和删除元素速度比较慢,因为插入和删除元素需要移动整个数组。
  • LinkedList 插入和删除元素速度快,因为只需要修改前后元素的指针,但查询和访问元素速度比较慢,因为需要遍历整个链表来找到指定元素。

所以,如果你的列表需要频繁插入和删除元素,那么使用 LinkedList 更好,如果你的列表需要频繁查询和访问元素,那么使用 ArrayList 更好。

当遍历了所有可能的树,并且需要频繁插入和删除元素,使用了 LinkedList<TreeNode> allTrees = new LinkedList<TreeNode>(); 来存储所有可能的树。这样可以提高插入和删除元素的效率。

选择使用ArrayList或LinkedList, 就要根据你的程序需要来考虑,如果需要频繁的遍历元素,建议使用ArrayList,如果需要频繁的插入和删除元素,建议使用LinkedList。

List<TreeNode> list = new ArrayList<TreeNode>(); 

输出结果:

[1,null,2,null,3,null,4,null,5,null,6]

List<TreeNode> allTrees = new LinkedList<TreeNode>();

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

相关文章:

  • 977. 有序数组的平方 1. 两数之和 349. 两个数组的交集
  • Mysql问题:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
  • Idea springboot springCloud热加载热调试常用的两种方式
  • 银河麒麟V10SP1高级服务器版本离线RPM方式升级openssl openssh 自动化升级系统补丁实战实例全网唯一
  • 2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻
  • Vue3这样子写页面更快更高效
  • 锐捷AP设置限速(胖模式)
  • 聚势合力,电巢与SDIA协会“战略合作签约仪式”圆满落成
  • Linux安装后基础配置--网络--ssh--基本软件
  • 剑指 Offer 66. 构建乘积数组
  • 1.1 误差的来源
  • python进程间通信
  • 麒麟Linux操作系统磁盘策略永久调整为deadline
  • yum安装Docker(CentOS7.9)
  • c++错误 free(): double free detected
  • 12升400V 升压DC-DC高压脱毛仪解决方案SC3671
  • h264格式分析
  • 【数据分析师求职面试指南】实战技能部分
  • 树与二叉树(二叉树的表示,性质,遍历,还原)
  • mysql 源码学习理解记录--lock_rec_move
  • markdown(.md)常用语法
  • 千言数据集赛题介绍
  • 信息技术最全总结(备考教资)
  • opencv识别车道线(霍夫线变换)
  • MySQL的同步数据Replication功能
  • 2023年全国最新高校辅导员精选真题及答案17
  • 中文代码92
  • Python SEO采集海量文本标题,用倒排索引找出“类似的标题“代码实现
  • 模型杂谈:快速上手元宇宙大厂 Meta “开源泄露”的大模型(LLaMA)
  • RedisCluster集群模式下master宕机主从切换期间Lettuce连接Redis无法使用报错Redis command timed out的问题