很多网友不知道arraylist和linkedlist的区别,ArrayList 和 LinkedList 都是 Java 中最常用的 List 接口的实现类。
arraylist和linkedlist的区别
我们将从底层数据结构、查询效率、内存占用、线程安全性这几个方面来阐述两者的不同。
1. 底层数据结构不同、
ArrayList 基于动态数组实现,是基于索引的访问。
LinkedList 基于双向链表实现,是基于节点的访问。
2. 查询效率不同
ArrayList 支持快速随机访问,时间复杂度为 O(1),但插入删除效率较低。
LinkedList 不支持高效随机元素访问,时间复杂度为 O(n),但插入删除效率较高。
3. 内存占用不同
ArrayList 的空间浪费主要在在 list 后续元素增多时的复制开销。
LinkedList的空间浪费主要在节点的存储上。
4. 线程安全性不同
ArrayList 不是线程安全的,多线程环境下需要手动同步。
LinkedList 不是线程安全的,多线程环境下需要手动同步。
arraylist和linkedlist的使用建议
频繁查询时首选 ArrayList。
频繁插入删除时首选 LinkedList。
评论列表(1条)
LinkedList, 作者本人都不用