`
coollifer
  • 浏览: 54229 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C#集合之STACK

    博客分类:
  • C#
阅读更多

1、Stack定义

System.Collections.Stack类表示对象的简单的后进先出非泛型集合。

2.优点

1、后进先出的集合。

2、Stack 能接受空引用作为有效值并且允许重复的元素

3. Stack的构造器

构造器函数

注释

Stack ()

初始化 Stack 类的新实例,该实例为空并且具有默认初始容量。

 Stack (ICollection)

初始化 Stack 类的新实例,该实例包含从指定集合复制的元素并且具有与所复制的元素数相同的初始容量。

 Stack (Int32)

初始化 Stack 类的新实例,该实例为空并且具有指定的初始容量或默认初始容量(这两个容量中的较大者)。

4、Stack的属性

属性名

注释

Count

获取 Stack 中包含的元素数。

5. Stack的方法

方法名

注释

Void Clear()

从 Stack 中移除所有对象。

Bool Contains(object obj)

确定某元素是否在 Stack 中。

Object Clone()

创建 Stack 的浅表副本。

Void CopyTo(Array array,int index)

从指定数组索引开始将 Stack 复制到现有一维 Array中。

Object Pop()

移除并返回位于 Stack 顶部的对象。

Void Push(object obj)

将对象插入 Stack 的顶部。

Object Peek()

返回位于 Stack 顶部的对象但不将其移除。

Object[]ToArray()

将 Stack 复制到新数组中。

 

6、Stack的使用示例

 

代码
复制代码
class Program
    {
        public static void Main()
        {

            //创建一个堆栈
            Stack myStack = new Stack();
            myStack.Push("The");//入栈
            myStack.Push("quick");
            myStack.Push("brown");
            myStack.Push("fox");
            

            // 打印集合中的值
            Console.Write("Stack values:");
            PrintValues(myStack, '\t');

            // 打印堆栈顶部的第一个元素,并将其移除
            Console.WriteLine("(Pop)\t\t{0}", myStack.Pop());

            //打印集合中的值
            Console.Write("Stack values:");
            PrintValues(myStack, '\t');

            // 打印堆栈顶部的第一个元素,并将其移除
            Console.WriteLine("(Pop)\t\t{0}", myStack.Pop());

            //打印集合中的值
            Console.Write("Stack values:");
            PrintValues(myStack, '\t');

            // 打印堆栈顶部的第一个元素
            Console.WriteLine("(Peek)\t\t{0}", myStack.Peek());

            // 打印集合中的值
            Console.Write("Stack values:");
            PrintValues(myStack, '\t');
            Console.Read();
        }


        public static void PrintValues(IEnumerable myCollection, char mySeparator)
        {
            foreach (Object obj in myCollection)
                Console.Write("{0}{1}", mySeparator, obj);
            Console.WriteLine();
        }

    }
复制代码

 

 

7.备注

1、Stack 的容量是 Stack 可以保存的元素数。Stack 的默认初始容量为 10。向 Stack 添加元素时,将通过重新分配来根据需要自动增大容量。

2、容量是 Stack 可存储的元素数。Count 是 Stack 中实际存储的元素数,容量始终大于或等于 Count。如果在添加元素时 Count 超过容量,则通过在复制旧元素和添加新元素之前重新分配内部数组来自动增大容量

分享到:
评论

相关推荐

    c# 中的arrlist queue HashtableTest SortedList stack 集合

    c# 中的arrlist queue HashtableTest SortedList stack 集合

    C# 常用集合总结

    本文档对C#的几种常见的集合(BitArray, Dictionary, Hashtable, NameValueCollection, Queue, Stack)的用法作了归纳,每种集合都附有完整的测试代码。(另外一种常见集合ArrayList收录在另外一份文档:<C# List使用...

    C# 集合(Collection)

    C# 集合(Collection) 集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 集合...

    c# 泛型、集合应用实例源码

    此实例代码大部分从网上整理而来,因为近期感觉泛型、集合等在ASP.NET web项目中开发还是比较重要的,对提高系统情能很有帮助。

    C#6大集合类全面解析

    C#6大集合类:1.ArrayList类2.Stack类3.Queue类4.Hashtable类5.SortedList类6.NameValueCollection类。

    C#_集合类_Array,Arraylist,List,Hashtable,Dictionary,Stack,Queue_学习资料

    我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据...

    C# StackExchange.Redis 操作封装类库

    C# StackExchange.Redis 操作封装类库,分别封装了Redis五大数据结构(String,Hash,List,Set,ZSet)的增删改查的操作方法,支持Async异步操作。​支持Redis分库操作。支持信息队列操作。 带有单元测试,为每个...

    C#各类集合汇总

    这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 平常在工作中List集合是用的最多的,其次是Array(数组).今天整理一下各类形式的集合,不用就...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    16.2.6 栈集合:Stack 454 16.2.7 队列集合:Queue 455 16.2.8 链表:LinkedList 456 16.3 提供索引器 456 16.4 返回null或者空集合 459 16.5 迭代器 459 16.5.1 迭代器的定义 460 ...

    C#中遍历各类数据集合的方法总结

    C#中遍历各类数据集合的方法,这里自己做下总结:枚举类型、遍历ArrayList(Queue、Stack)、Winform窗体中的控件、HashTable哈希表等等,具体祥看下

    在一小时内学会 C#(txt版本)

    有很多初学者的 C# 文章,这只是其中之一。 接下来关于 C# 的讨论主题: ? 编程结构 ? 命名空间 ? 数据类型 ? 变量 ? 运算符与表达式 ? 枚举 ? 语句 ? 类与结构 ? 修饰符 ? 属性 ? 接口 ? 函数参数 ? 数组 ? 索引...

    C#中遍历各类数据集合的方法

    C#中遍历各类数据集合的方法总结:  1.枚举类型 //遍历枚举类型Sample的各个枚举名称 foreach (string sp in Enum.GetNames(typeof(Sample))) { ary.Add(sp); } //遍历枚举类型Sample的各个枚举值 foreach ...

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    10.2.3 stack集合类 188 10.2.4 hashtable集合类 189 10.2.5 sortedlist集合类 190 10.2.6 使用集合初始化器 191 10.2.7 比较数组和集合 192 10.2.8 使用集合类来玩牌 192 第10章快速参考 195 第11章 理解...

    C#关于System.Collections空间详解

    C#的System.Collections命名空间包含可使用的集合类和相关的接口,提供了集合的基本功能。包括了.NET下的非泛型集合类以及非泛型接口等,现详述如下: 该命名空间下的.NET非泛型集合类如下所示: — System....

    (数据结构与算法:C#语言描述(英文)

    这套类的范围从Array 类、ArrayList 类和Collection 类到Stack类和Queue 类,再到Hashtable 类和SortedList 类。学习数据结构与算法的学生在学习如何实现它们之前可以先明白如何使用数据结构。以前老师在构建完整的...

    Collections in C#

    集合,C#中包括一系列的类,它提供了一个优越的方式阵列功能,如何: ArrayList List HashTable Dictionary SortedList Stack Queue

Global site tag (gtag.js) - Google Analytics