LinkedList 比ArrayList 提供了更多的方法,其中有两个方法可以实现栈和队列的操作。
removeFirst() 移除并返回此列表中的第一个元素。
removeLast() 移除并返回此列表中的最后一个元素。
模拟栈:
import java.util.LinkedList;
class MyStack<E>{
LinkedList<E> linkdList;
public MyStack(){
linkdList = new LinkedList<>();
}
public void push(E obj){
linkdList.addLast(obj);
}
public void pop(){
System.out.println(linkdList.removeLast()); //每次先输出LinkedList集合中的最后一个元素,完成先进后出
}
boolean isEmepty(){
return linkdList.isEmpty();
}
}
class TestStack {
public static void main(String args []){
MyStack<String> sk = new MyStack();
sk.push("123");
sk.push("456");
sk.push("789");
while(!sk.isEmepty()){
sk.pop();
}
}
}
输出
789
456
123
模拟队列:
import java.util.LinkedList;
class MyQueue<E>{
LinkedList<E> linkdList;
public MyQueue(){
linkdList = new LinkedList<>();
}
public void offer(E obj){
linkdList.addLast(obj);
}
public void poll(){
System.out.println(linkdList.removeFirst()); //每次先输出LinkedList集合中的第一个元素,完成先进先出
}
boolean isEmepty(){
return linkdList.isEmpty();
}
}
class TestQueue {
public static void main(String args []){
MyQueue<String> sk = new MyQueue();
sk.offer("123");
sk.offer("456");
sk.offer("789");
while(!sk.isEmepty()){
sk.poll();
}
}
}
输出
123
456
789