LinkedList
- LinkedList是采用双向循环链表实现的;
- 利用LinkedList实现栈(stack)、队列(queue)、双向队列(double-ended queue);
- ArrayList和LinkedList的比较
- ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素;
- 如果我们经常在List的开始处增加元素,或者在List中进行插入和删除操作,我们应该使用LinkedList;如果是随机访问,使用ArrayList将更加快速;
双向循环链表,如果没有最外面两条线,就是双向链表

import java.util.*;
class MyStack{
private LinkedList li = new LinkedList();
public void push(Object o){
li.addFirst(o);
}
public Object pop(){
return li.removeFirst();
}
public Object peek(){
return li.getFirst();
}
public boolean empty(){
return li.isEmpty();
}
public static void main(String[] arg){
MyStack ms = new MyStack();
ms.push("one");
ms.push("two");
ms.push("three");
System.out.println(ms.pop());
System.out.println(ms.peek());
System.out.println(ms.pop());
System.out.println(ms.empty());
}
}