zoukankan      html  css  js  c++  java
  • 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的队列的特点就是:先进先出

  • 相关阅读:
    js/css 伪类, 获取伪类样式
    JS 盒子模型
    python坑之input获取字符串
    configpraser模块
    类的特殊成员&反射&异常处理
    面向对象
    员工信息表
    re正则表达式
    PyCharm教程
    递归实现jsonTree
  • 原文地址:https://www.cnblogs.com/Tony98/p/10570274.html
Copyright © 2011-2022 走看看