ArrayList和LinkedList的区别
来源:互联网 发布:c语言算法是什么意思 编辑:程序博客网 时间:2024/06/08 06:52
其实说到这两者的区别,网上已经有很多了,但是我想说的不是这些。
关于这两者我们都知道ArrayList适合于查询和修改数据,而LinkedList更适合于增加和删除数据(数据量小时其实没有ArrayList效率高)。
但是这是为什么呢?
首先看这两者的后缀名:List,表明都是List的实现类,这是一样的地方
然后看前缀:Array 和Linked,这是不一样的地方
java规范之一就是见名知义,Array单词的意思是数组,那么就很好理解了
看ArrayList的源代码会发现,ArrayList的实现机制的数组,所以会取这样的一个名字
那么数组的特性ArrayList应该也会有了
数组的特性之一:数组大小唯一,在定义数组的时候必须要指定大小
ArrayList底层代码也是一样的,但是ArrayList可以做到List的特性:数据大小可以任意改变,那是因为ArrayList在做增删操作的时候是先创建一个新的数组,把原来的数组做了改动后再放置进去的,所以这样就可以看出来,在做增删操作的时候其实底层代码比较复杂,所以效率很低,这就是做增删操作时一般不使用ArrayList集合
数组的特性之二:数组索引值,可以快速访问数组中的任意一个位置上的值。
数组访问值采用 数组名 [ 索引值 ] 的方式,而ArrayList是 集合名.get(索引值) 的方式只是换了一个外在的表现形式
但是从这一点上可以看出ArrayList查询数据时效率非常高,一步到位
既然查询很快,那么要修改这个被查询出来的值也就会很快了
这就是ArrayList集合用于查询和修改时效率高的原因
再来说LinkedList;
Linked:链接,链表
这里的LinkedList是双向链表
双向:即为每一个元素都应该有上一个元素的索引和下一个元素的索引
这里使用应该是指当元素个数为1时无上下元素的索引,其他所有元素集合内的第一个元素无上一个元素的索引、最后一个元素无下一个元素的索引
- linkedlist和arraylist的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- arraylist和linkedlist的区别!
- LinkedList和ArrayList的区别
- LinkedList和ArrayList的区别
- LinkedList和ArrayList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- LinkedList和ArrayList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList 和linkedlist的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- VB 结构体
- iOS网络请求动画
- Swift设计模式之抽象工厂模式
- 实现碰撞ViewGroup,任何其中的子view都可以实现碰撞移动
- 最小二乘法在机器学习中的应用
- ArrayList和LinkedList的区别
- Swift设计模式之策略模式
- XCode编译器介绍
- unity里面动态的替换shader
- 目标赋予生命的意义和目的
- Recycleview实现顶部添加headerview
- Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut poin_
- Linux常用命令
- Swift设计模式之备忘录模式