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的队列的特点就是:先进先出

  • 相关阅读:
    linux网络编程 inet_aton(); inet_aton; inet_addr;
    linux网络编程 ntohs, ntohl, htons,htonl inet_aton等详解
    linux C++ scandir 的使用
    linux 多线程编程-读写者问题
    为什么修改头文件make不重新编译
    syslog(),closelog()与openlog()--日志操作函数
    VC:CString用法整理(转载)
    VC6.0实用小技巧
    HTml js 生成图片
    C++中两个类相互包含引用问题
  • 原文地址:https://www.cnblogs.com/Tony98/p/10570274.html
Copyright © 2011-2022 走看看