LinkedList源码详解
来源:互联网 发布:西安行知中学初中部 编辑:程序博客网 时间:2024/06/06 05:18
- likedList简介
- LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。
- 非线程安全的,只在单线程下适合使用。
- 实现了Serializable接口,因此它支持序列化,能够通过序列化传输
- 实现了Cloneable接口,能被克隆
源码
- add()
- linkLast
- linkFirst
- remove()
node()
Node<E> node(int index) { if(index < (size >> 1)){ Node<E> x = first; for (int i = 0; i < index; i++) x = x.next; return x; }else{ Node<E> x = last; for(int i = size - 1; i > index; i--) x = x.prev; return x; }}
- 类似于二分查找
- add()
小结
- LinkedList没有大小限制
- 没有浪费存储空间(Node节点的创建需要额外消耗少量空间)
- add,remove等操作的空间消耗是固定的,不会造成对元素进行额外的移动拷贝
- 除了对首尾元素外,对其他节点,进行add,remove,set,get等操作,都需要进行遍历查找的,时间复杂度为O(n)
- 适用于查询操作少,存储大量数据,可以考虑使用LinkedList
阅读全文
0 0
- LinkedList源码详解
- LinkedList源码详解
- LinkedList源码详解
- LinkedList源码详解
- LinkedList源码分析详解
- Java LinkedList详解源码研究
- Java集合——LinkedList源码详解
- LinkedList源码
- LinkedList源码
- LinkedList源码
- LinkedList源码
- linkedList 详解
- LinkedList详解
- LinkedList详解
- Java的LinkedList详解,看源码之后的总结
- Java集合:LinkedList使用详解及源码分析
- java集合LinkedList的底层实现源码详解
- 【源码】LinkedList源码剖析
- nyoj 144 小珂的烦恼
- install samba on ubuntu
- 基于Mina实现的一个简单数据采集中间件
- WebCollector 网页爬虫
- 数据结构实验2.1(单链表)
- LinkedList源码详解
- What a Beautiful Lake
- 线程同步机制
- 六大设计原则详解(5)-迪米特法则
- SpringMvc+POI处理excel表数据导入
- python
- webstorm 使用技巧
- ShadowsocksR分享
- webstorm 2017 激活破解