ArrayList 和LinkedList的排序问题
来源:互联网 发布:旺铺 和淘宝区别 编辑:程序博客网 时间:2024/05/22 17:42
两者的排序本身的结构决定的:
Java SE提供的LinkedList其实是一种双向链表,每个节点都保存上一个和下一个节点的地址。双向链表就像火车和火车的各节车厢。在插入时,把新车厢的前后固定点在原来的2个环的连接点之间简单对接上。而删除时,拿掉一节车厢,直接把前一节和后一节首尾相连。所以仅对连接点操作,效率非常快。只需一次。查找时,就需要从火车头顺序‘逐个’找到车尾,这种逐个检查所以查找效率不佳。
ArrayList使用的是‘连续’(不是有序)的内存空间。每个单元的大小和位置可以用简单的四则运算计算出来,比如每个节点占4bytes,存20个节点,就需要4*20=80bytes,第3个节点在4*3=第12个byte位置。由于可以计算准确位置,这种结构在'随机存取操作'上很快,可以直接查第3个节点,就是第12个byte位置, a[3]或a.get(3)就返回第12byte位置起的数据代表的对象。这种随机操作的便捷就是应用意义上的查找便捷。在新增和删除操作中,由于是连续空间,插入数据需要对前后数据进行大块的整体搬移,空间不够时也需要整体扩容,删除后空间闲置需要整体回收。所以在删除新增操作上性能不佳。
0 1
- ArrayList 和LinkedList的排序问题
- 关于ArrayList和LinkedList的效率问题
- linkedlist和arraylist的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的特点
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- Java的ArrayList和LinkedList
- LinkedList和ArrayList的优缺点
- arraylist和linkedlist的区别!
- LinkedList和ArrayList的区别
- LinkedList和ArrayList的区别
- LinkedList和ArrayList的区别
- ArrayList和LinkedList的区别
- ArrayList和LinkedList的区别
- LinkedList和ArrayList的区别
- linux c/c++中getopt的使用
- Linux命令行下设置黑底绿字
- jvisualvm
- ppst 技术视频——oracle 性能优化
- 九度OJ 1162 I Wanna Go Home
- ArrayList 和LinkedList的排序问题
- 用宏求结构体的内存偏移地址
- html5通过ajax上传文件并显示进度
- 终于干了点正事。。三天用了三个库opencv、emgu、aforge.net[2011.7.30]
- 多线程访问共享对象和数据的方式-总结
- Java应用级产品开发平台APDPlat
- Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf
- Matlab与C/C++混合编程调用OpenCV
- 使用bitset应注意的问题