LinkedList
概念
链表是一个常见的基础数据类型,是一种线性表,但并不会按线性的顺序存储数据,而是在每一个节点存储下一个节点的地址。
java 中,LinkedList类似于 ArrayList,是一种常用的数据容器。与ArrayList相比,LinkedList增加和删除元素的效率更高,但是查找和修改元素内容的效率较低。
适用范围
适用 ArrayList
- 频繁访问元素中的某一个元素
- 只需要在列表末尾进行添加和删除元素操作。
适用 LinkedList
- 只需要通过循环迭代来访问列表中的某些元素。
- 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
LinkedList可以作为队列使用,可以进行列表的相关操作,可以实现克隆,支持序列化,能通过序列化进行传输。
import java.util.LinkedList;
// 创建
LinkedList<E> list = new LinkedList<E>();
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
##实例
使用
LinkedList<String> link= new LinkedList<String>();
link.add("Taobao");
link.add("Weibo");
System.out.print(link);
link.addFirst("wiki"); // 添加头部元素
link.addLast("wiki"); // 添加尾部元素
link.removeFirst(); // 移除头部元素
link.removeLast(); // 移除尾部元素
link.getFirst(); // 获取头部元素
link.getLast(); // 获取尾部元素
link.size(); // 计算链表的大小
迭代
for(int i=0;i<link.size();i++){
System.out.print(link.get(i));
}
for(String i : link){
System.out.print(i)
}
常见方法
方法 | 描述 |
---|---|
add(element) | 在末尾添加元素 |
add(index,element) | 向指定位置添加元素 |
addAll(Collection c) | 将一个集合的所有元素都添加到链表后边,成功返回true,否则返回false |
clear() | 清空链表 |
remove(Object o) | 删除指定元素 |
remove(index) | 删除指定位置的元素 |
contains(Object o) | 判断是否包含某一元素 |
get(index) | 返回指定位置的元素 |
indexOf(Object o) | 返回指定元素第一出现的位置 |
indexLastOf(Object o) | 返回指定元素最后一次出现的位置 |
set(index,element) | 设置指定位置的元素 |
clone() | 克隆该元素 |
toArray() | 返回一个由链表元素组成的数组 |