Java面试题之ArrayList和LinkedList的区别
2024-09-25 14:46:39
先看下类图:
相同点:
都实现了List接口和Collection;
不同点:
1、ArrayList是基于数组实现的;LinkedList是基于链表实现的;
2、ArrayList随机查询速度快;LinkedList插入和删除速度快;
原理解析:
ArrayList是基于数组实现的,他的特性就是可以使用索引来提升查询效率;插入和删除数组中某个元素,会导致其后面的元素需要重新调整索引,产生一定的性能消耗;
LinkedList是基于链表实现的,没有索引,所以查询效率不高,但是插入和删除效率却很高;为什么呢?因为链表里插入或删除某个元素,只需要调整前后元素的引用即可;
最新文章
- Maven打包含有Main方法jar并运行
- Winform API ";user32.dll";中的函数
- http://bbs.ednchina.com/BLOG_345002072_2001308.HTM
- ios UIView sizeToFit sizeThatFits
- celery与mangodb搭配应用
- Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
- Yours 的博客开张啦!
- 0基础学习ios开发笔记第二天
- Lucene.net 从创建索引到搜索的代码范例
- 利用BP神经网络预测水道浅滩演变
- spark-shell启动报错:Yarn application has already ended! It might have been killed or unable to launch application master
- 对抗明文口令泄露 —— Web 前端慢 Hash
- 网络基础之HTTP、TCP/IP、Socket
- Gradle安装和在Eclipse中的使用
- springcloud使用zookeeper作为config的配置中心
- shell 脚本部分变量含义
- [dpdk][kernel][driver] 如何让DPDK的UIO开机自动加载到正确的网卡上
- Python3基础 list for+continue 输出1-50之间的偶数
- 浅入 dancing links x(舞蹈链算法)
- Swap交换分区--continue
热门文章
- Java 可变长参数列表
- Sublime +Markdown+OmniMarkupPreviewer 搭建实时预览的markdown编辑器
- mysql group by的特殊性
- Java Object类 instanceof关键字 练习:判断是否为同一人 集合按照人的年龄排序,如果年龄相同按名字的字母顺序升序 Comparator比较器
- 新环境安装 python3
- 拖拽图片到另一个div里
- redis主从+哨兵模式
- python hashlib模块学习
- 线段树、前缀数组:HDU1591-Color the ball(区间更新、简单题)
- 12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)