栈(Stack)–class
入栈 public E push(E item)
出栈 public synchronized E pop()
观察栈顶元素 public synchronized E peek()
实例:
import java.util.Stack;
public class TestStack {
public static void main(String[] args) {
Stack<String> stack=new Stack<>();
//进栈
stack.push("happy");
stack.push("share");
stack.push("insist");
stack.push("amazing");
//出栈
System.out.println(stack.pop()); //amazing
//观察栈顶元素
System.out.println(stack.peek());//insist
//遍历栈
while(!stack.isEmpty())
{
System.out.print(stack.pop()+"<-"); //insist<-share<-happy<-
}
}
}
队列(Queue)–interface
注意:队列是一个接口,需要用子类实现;
队列为空,会返回null
进队列 public boolean add()
出队列 public E poll()
观察队头:public E peek()
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
//如果Queue没有元素,返回null,而栈会有异常
public class TestQueue {
public static void main(String[] args) {
//Queue是接口
Queue<String> queue=new LinkedList<>();
//进队列
queue.add("happy");
queue.add("share");
queue.add("insist");
queue.add("amzing");
//出队列
System.out.println(queue.poll()); //happy
//观察队头
System.out.println(queue.peek()); //share
//遍历队列
while(!queue.isEmpty())
{
System.out.print(queue.poll()+"->"); //share->insist->amzing->null (null为下一个语句结果)
}
System.out.println(queue.peek()); //如果队列没有元素,将会返回null
//遍历队列使用迭代器----迭代器遍历顺序和元素放入顺序一样,队列先进先出,可以使用迭代器
Iterator<String> iterator=queue.iterator(); //取得队列的迭代器
while(iterator.hasNext())
{
System.out.print(iterator.next()+"->"); //share->insist->amzing->
}
}
}