08.08 LinkedList认识-实现栈的操作

LinkedList本身添加了可以使其用于栈、队列和双端队列的方法,数据以链接方式存储,Deque为队列接口,Entry是链接数据结构

public class LinkedList

extends AbstractSequentialList

implements List, Deque, Cloneable, java.io.Serializable

{

private transient Entry header = new Entry(null, null, null);

private transient int size = 0;

因为LinkedList也实现了List接口的其它方法,下面根据栈实现的方法重新自己写一遍只实现栈的操作,如下:

/**

* 使用linkedList实现栈操作

* @author sunny

* LinkedList实现了和ArrayList一样的List接口,它在执行一些插入和移除操作时比ArrayList效率高,

* 因为它底层是链表的实现方式,但是它在随机访问时没有ArrayList效率高,数组可以直接访问下标

* 栈的特点是先进后出

* @param

*/

public class Stack {

private LinkedList storage = new LinkedList();

public void push(T v){

storage.addFirst(v);

}

public T peek(){

return storage.getFirst();

}

public T pop(){

return storage.removeFirst();

}

public boolean empty(){

return storage.isEmpty();

}

public static void main(String[] args){

Stack<string> stack = new Stack<string>();/<string>/<string>

for(String s : "This is a dog!".split(" ")){

stack.push(s);

}

while (!stack.empty()) {

System.out.println(stack.pop());

}

}

}

输出结果:

dog!

a

is

This