首页 > 其他 > 详细

Stack栈

时间:2019-03-21 11:50:15      阅读:134      评论:0      收藏:0      [点我收藏+]

  栈是一种先进后出的数据结构。像浏览器上的后退,以及各个编辑器上的撤销操作都属于栈的功能,而在整个类集里面提供有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的队列的特点就是:先进先出

Stack栈

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!