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 stack = new Stack();
for(String s : "This is a dog!".split(" ")){
stack.push(s);
}
while (!stack.empty()) {
System.out.println(stack.pop());
}
}

}

输出结果:

dog!
a
is
This

你可能感兴趣的:(java编程思想)