LinkedList详解
来源:互联网 发布:windows配置hadoop 编辑:程序博客网 时间:2024/06/06 19:19
LinkedList详解
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的类实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。实现Deque接口,可以双向访问链表
LinkedList的构造函数
public LinkedList()
: ——生成空的链表 public LinkedList(Collection col)
: 复制构造函数
获取链表元素
这里只列出一些常见的容易混淆的方法
//获取第一个链表元素 public E getFirst() {}
//获取最后一个链表元素 public E getLast() {}
//返回在具体位置的元素 public E get(int index) {}
//返回第一次元素出现的位置 public int indexOf(Object o) {}
//返回元素最后一次出现的位置
public int lastIndexOf(Object o) {}
//获取但不删除第一个元素,为空则返回null public E peek() {}
//获取但不删除第一个元素,为空则报错NoSuchElementException public E element() {
return getFirst();
}
////获取且删除第一个元素,为空则返回null public E poll() {}
//获取且删除第一个元素,为空则报错NoSuchElementException
public E remove() {
return removeFirst();
}
添加元素
//在头节点前出插入元素作为头节点 public void push(E e) {
addFirst(e);
}
//在尾节点后插入元素作为尾节点 public boolean add(E e) {
linkLast(e);
return true;
}
和ArrayList比较
ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象是,数组的大小也相应的改变。这样的优点是快速随即访问,通过调用get(i)方法来访问下标为i的数组元素,获取元素的时间复杂度是O(1).向其中添加对象速度慢,比如在某个元素A后面添加一个元素B,就需要这个元素后面A后面的数组元素都往后移动一位,时间复杂度为O(n),并且当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情。
LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。时间复杂度是O(1),这样优点是操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方。缺点是不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢,时间复杂度是O(n).
说白了,它们之间的关系就是数据结构中的顺序存储和链式存储的关系。
- linkedList 详解
- LinkedList详解
- LinkedList详解
- Java之LinkedList详解
- 【JAVA】LinkedList使用详解
- 026.LinkedList底层详解
- LinkedList用法详解
- LinkedList源码详解
- java的LinkedList详解
- java linkedlist操作详解
- 【JAVA集合详解】LinkedList
- LinkedList源码详解
- LinkedList源码详解
- LinkedList源码详解
- LinkedList源码分析详解
- 详解LinkedList实现类
- Java中LinkedList类详解
- Java中LinkedList类详解
- 算法时间复杂度评估
- 双向队列 小练
- mysql安装教程
- Sublime text 3最新版破解方法
- C++面向对象(二)——继承
- LinkedList详解
- STL list双向链表容器
- executeQuery 、execute与executeUpdate区别
- 控制器相关(控制器的创建 跳转 导航控制器 等)
- 走迷宫问题(深度优先遍历 + 广度优先遍历)
- iOS 偏好设置存储简单用法-数据持久化
- 【BZOJ3676】[Apio2014]回文串 【回文自动机】
- iOS本地数据存取,看这里就够了
- 字符流和字节流