Queue 和Stack 的区别

        protected void Page_Load(object sender, EventArgs e)
        {
            //queue 是队列,遵循先进先出的原则
            //queue 属性 count
            // queue method Clear()   //清空 
                        //Contains() //是否包含 
                        //Dequeue() //出列 
                        //Enqueue() //入列 

            Queue queue = new Queue();
            queue.Enqueue("abc");
            queue.Enqueue(123);
            queue.Enqueue(true);

            string str = "";
            //foreach (object obj in queue)
            //{
            //    str += obj.ToString() + "\t";
            //}
            //Response.Write(str);

            //queue 先进先出。所以结果是123 true
            string str1 = queue.Dequeue().ToString();
            //foreach (object obj in queue)
            //{
            //    str +="<br/>"+ obj.ToString() + "\n";
            //}
            //Response.Write(str);

            //string str2 = queue.Peek().ToString();
            //foreach (object obj in queue)
            //{
            //    str += "<br/>" + obj.ToString() + "\n";
            //}
            //Response.Write(str);//结果123 true

            //Stack 的主要成员:
            ///* 属性 */ 
            //Count       // 

            ///* 方法 */ 
            //Clear()      // 
            //Contains()    // 
            //Peek()       //获取将要出栈的 
            //Pop()       //出栈 
            //Push()       //压栈 

            Stack stack = new Stack();
            stack.Push("abc");
            stack.Push("efg");
            stack.Push("hhhs");

            //foreach (object obj in stack)
            //{
            //    str += obj.ToString() + "\t";
            //}
            //Response.Write(str);

            stack.Peek();
            foreach (object obj in stack)
            {
                str += obj.ToString() + "\t";
            }
            Response.Write(str);
            //或许先出栈的元素
            string stack1 = stack.Pop().ToString();
            Response.Write("<br/>"+stack1);

            //或许将要出栈的元素
            string stack2 = stack.Peek().ToString();
            Response.Write("<br/>" + stack2);//eft

            int n = stack.Count;
            Response.Write("<br>"+n);//2   hhhs 已经出栈
        }

作者:望月狼

出处:http://www.cnblogs.com/wangyuelang0526

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

时间: 2024-08-29 12:53:07

Queue 和Stack 的区别的相关文章

[Java] Map、Set、List、Queue、Stack的特点与用法

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! Map 键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 某些映射实现可明确保证其顺序,如 TreeMap 类:另一些映射实现则不保证顺序,如 HashMap 类. Map中元素,可以将key序列.value序列单独抽取出来.  使用keySet()抽取key序列,将map中的所有keys生成一个Set.  使用values()抽取value序列,将map中的所有values生成一个Collection.  为什么一个生

Java中Queue和BlockingQueue的区别

1.BlockingQueue:支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用. 2.BlockingQueue 不接受 null 元素. 3.BlockingQueue 可以是限定容量的. 4.BlockingQueue 实现是线程安全的.Queue不是线程安全的.因此可以将Blockingqueue用于用于生产者-使用者队列. 根据Api修改的一个例子,大家可以修改自己体验BlockingQueue的使用 package test;

java基础Haep(堆)和Stack(栈)区别

简单的可以理解为: heap:是由malloc之类函数分配的空间所在地.地址是由低向高增长的. stack:是自动分配变量,以及函数调用的时候所使用的一些空间.地址是由高向低减少的. 注:何为高地址,何为低地址呢?(以32位系统为例) 就是存储的时候越靠近0xfffffffff那么地址就越高,越靠近0x000000,地址也就越低,如下图所示: 首先我们要知道我们C程序映像中内存的空间布局情况:在<C专家编程>中或者<Unix环境高级编程>中有关于内存空间布局情况的说明,大致如下图:

关于线程安全集合删除问题

问题描述 BlockingCollection<Student>bc=newBlockingCollection<Student>();ConcurrentBag<Student>cc=newConcurrentBag<Student>();for(inti=0;i<10;i++){varstudent=newStudent{id=i,name="asia"+i};cc.Add(student);bc.Add(student);}v

java-堆栈和queue集合的关系

问题描述 堆栈和queue集合的关系 如题,java集合里面提到了list,queue等接口,但是没提到堆栈,不是数据结构么. 另外,queue的原理是先进先出,和heap堆一样的性质.想问下堆栈和集合架构什么关系, 解决方案 谁说没有堆栈的?java.util.Stack不是么http://blog.csdn.net/a19881029/article/details/9408649 解决方案二: 追问:集合架构方面几个接口是list,queue,sort等.并没有提到常说的堆栈,数据结构书上

Python多进程通信Queue、Pipe、Value、Array实例_python

queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue & JoinableQueue queue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue. multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法. task_done()用来告诉queue一个tas

C#笔记

 一.变量与表达式        1.变量第一个字母必须是字符.下划线或@,其后就可以字符.数字.下划线.        2.字面值        (1)double为浮点默认字面值,在给float或decimal浮点型赋值时要加f/F或m/M.        3.表达式        Char变量实际存储的是数字,所以把两个char变量加在一起会得到一个数字. 二.流程控制               2.Switch        在C#中,执行完一个Case语句后,不能进入下一个Cas

数据结构Java实现07----队列:顺序队列&amp;顺序循环队列、链式队列、顺序优先队列

一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作. 队列中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头.队列的插入操作通常称作入队列,队列的删除操作通常称作出队列. 下图是一个依次向队列中插入数据元素a0,a1,...,an-1后的示意图: 上图中,a0是当前 队头数据元素,an-1是当前 队尾数据元素. 为了

面试中关于Java中涉及到知识点(转)

本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺.   1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? (1)boolean boolean数据类型非true即false.这个数据类型表示1 bit的信息,但是它的大小并没有精确定义. <Java虚拟机规范>中如是说:"虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持.在Java虚拟