LinkedList本身添加了可以使其用于栈、队列和双端队列的方法,数据以链接方式存储,Deque为队列接口,Entry是链接数据结构
public class LinkedList
extends AbstractSequentialList
implements List
{
private transient Entry
private transient int size = 0;
因为LinkedList也实现了List接口的其它方法,下面根据栈实现的方法重新自己写一遍只实现栈的操作,如下:
/**
* 使用linkedList实现栈操作
* @author sunny
* LinkedList实现了和ArrayList一样的List接口,它在执行一些插入和移除操作时比ArrayList效率高,
* 因为它底层是链表的实现方式,但是它在随机访问时没有ArrayList效率高,数组可以直接访问下标
* 栈的特点是先进后出
* @param
*/
public class Stack
private 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
閱讀更多 碼農宸娛樂淇 的文章