Stack栈

  栈是一种先进后出的数据结构。像浏览器上的后退,以及各个编辑器上的撤销操作都属于栈的功能,而在整个类集里面提供有Stack 整个类是Vector的子类,但是需要注意的是,使用这个的时候用的不是Vector类的方法,使用的时候不要进行向上转型。因为要操作的方法不是List定义的,而是由Stack定义的,有两个核心方法:

    入栈:public E push(E item)

    出栈:public E pop()

范例:观察输入栈

 1 package cn.Tony.demo;
 2 
 3 import java.util.Stack;
 4 
 5 public class TestDemo{
 6     public static void main(String[] args) throws Exception {
 7         Stack<String> all=new Stack<String>();
 8         all.push("A");
 9         all.push("B");
10         all.push("C");
11         all.push("D");
12         for(int x=0;x<5;x++) {
13             System.out.println(all.pop());
14         }
15     }
16 }  

  如果栈已经空了,那么再次出栈就会抛出空栈异常

  栈这个概念主要用于理论上,而在实际上开发之中使用的几率不高

Queue队列

  Stack是先进后出,但是还有一个与之类似的为先进先出。

  队列就属于先进先出的实现,在Java.Util包中使用Queue来实现队列处理操作,而这个类的子类

 

  如果要使用Queue接口主要是进行先进先出的时候,这个接口有如下的方法:

    依照队列取出内容:E poll();

 1 package cn.Tony.demo;
 2 
 3 import java.util.LinkedList;
 4 import java.util.Queue;
 5     
 6 public class TestDemo{
 7     public static void main(String[] args) throws Exception {
 8         Queue<String> queue=new LinkedList<String>();
 9         queue.add("A");
10         queue.add("B");
11         queue.add("C");
12         System.out.println(queue.poll());
13         System.out.println(queue.poll());
14         System.out.println(queue.poll());
15     }
16 }  

  既然队列可以在整个操作之中起到一个缓冲作用,那么就可以利用队列修改之前多线程讲解的生成者和消费者模型。

Queue的队列的特点就是:先进先出

原文地址:https://www.cnblogs.com/Tony98/p/10570274.html