ArrayList和LinkedList
来源:互联网 发布:福州seo服务 编辑:程序博客网 时间:2024/06/13 21:24
单向链表由若干同类型的结点串接而成。每个结点包括两个域,即数据域和指针域。数据域保存实际数据,指针域指向下一结点。尾结点指针域为空(NULL),表示链表结束。若尾结点的指针域指向首结点,则构成环形链表。数组和链表有类似功能,具体区别如下:
数组优于链表的:
内存空间占用的少。因为链表节点会附加上一块或两块下一个节点的信息.但是数组在建立时就固定了.所以也有可能会因为建立的数组过大或不足引起内存上的问题.
数组内的数据可随机访问。但链表不具备随机访问性.这个很容易理解.数组在内存里是连续的空间.比如如果一个数组地址从100到200,且每个元素占用两个字节,那么100-200之间的任何一个偶数都是数组元素的地址.可以直接访问.链表在内存地址可能是分散的.所以必须通过上一节点中的信息找能找到下一个节点。
- 查找速度上。这个也是因为内存地址的连续性的问题,不罗索了。
链表优于数组的:
插入与删除的操作。如果数组的中间插入一个元素,那么这个元素后的所有元素的内存地址都要往后移动。删除的话同理.只有对数据的最后一个元素进行插入删除操作时,才比较快。链表只需要更改有必要更改的节点内的节点信息就够了。并不需要更改节点的内存地址。
内存地址的利用率方面。不管你内存里还有多少空间,如果没办法一次性给出数组所需的要空间,那就会提示内存不足,磁盘空间整理的原因之一在这里.而链表可以是分散的空间地址。
- 链表的扩展性比数组好。因为一个数组建立后所占用的空间大小就是固定的.如果满了就没法扩展。只能新建一个更大空间的数组.而链表不是固定的,可以很方便的扩展。
0 0
- ArrayList和LinkedList区别
- ArrayList、Vector和LinkedList
- LinkedList、ArrayList和Vector
- ArrayList和LinkedList区别
- ArrayList和LinkedList区别?
- ArrayList和LinkedList区别
- 使用arraylist和linkedlist
- ArrayList和LinkedList
- LinkedList,ArrayList和Vector
- ArrayList和LinkedList
- ArrayList和LinkedList比较
- ArrayList和LinkedList区别
- ArrayList、Vector和LinkedList
- ArrayList和LinkedList区别
- ArrayList、Vector和LinkedList
- ArrayList和LinkedList浅谈
- ArrayList和LinkedList实现
- Arraylist 和LinkedList
- 乐观锁和悲观锁的区别
- C++ dll 类型与 C#类型对应关系
- 如何在Mac OS X上关闭Emacs的自动保存功能?
- 98-10(fibonacci)
- Spring SpringMVC Mybatis项目总结
- ArrayList和LinkedList
- 剑指Offer----扩展:有趣的数字(腾讯)
- canvas.DrawText让文字真正居中显示
- 栈的应用-括号的匹配
- ROS_PCl_加载PCD点云数据文件与接收点云并保存
- CSS 文本样式(上)(20160817-0017)
- Android自定义SeekBar的样式
- java解析xml
- UML类图画法