Java LinkedList 用法
LinkedList类是双向链表,每个节点都保留了前驱和后继节点的引用。
LinkedList和ArrayList都继承自List接口,二者的实现不同。ArrayList依靠数组实现,优势在于O(1)查询,但在增加、删除元素上效率很低。LinkedList依靠链表实现,优势在于O(1)增减,但查询效率很低。
要使用LinkedList,应该导入包
import java.util.LinkedList;
创建LinkedList
LinkedList<Integer> linkedlist = new LinkedList<Integer>();
LinkedList test = new LinkedList();
增加、删除元素
增加元素
for(int i = 0; i < 10; i++) {
linkedlist.add(i); // 向末尾增加元素
}
linkedlist.add(2,5); // 在索引2后增加元素5
// java的链表支持按照索引访问,但是这个访问仍然是O(n)的复杂度
删除元素
linkedlist.remove(new Integer(3));
linkedlist.remove(0);
常用方法
linkedlist.addFirst(...); // 等效于 add(0,...);
linkedlist.addLast(...); // 等效于 add(...);
linkedlist.clear(); // 清空链表,物理长度为0
linkedlist.size(); // 返回链表逻辑长度
linkedlist.isEmpty();// 判断逻辑长度是否为0