1、Stack定义
System.Collections.Stack类表示对象的简单的后进先出非泛型集合。
2.优点
1、后进先出的集合。
2、Stack 能接受空引用作为有效值并且允许重复的元素
3. Stack的构造器
4、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#编程语言中,集合和字符串处理是两个至关重要的概念。集合是存储一组对象的容器,而字符串处理则是对文本数据进行操作的核心技术。在这个压缩包中,我们很可能是得到了一系列关于这两个主题的源代码示例,这些...
- 使用泛型:C# 2.0及更高版本引入了泛型集合,如List、Stack、Queue和Dictionary, TValue>,它们在类型安全和性能上优于非泛型集合。 学习和熟练掌握这些集合类的使用,对于编写高效、健壮的C#代码至关重要。通过...
学习C#集合时,开发者需要熟悉这些泛型集合的接口、属性和方法,以便在实际开发中选择合适的集合类型来满足特定需求。例如,如果需要快速查找元素,哈希集和字典可能更适合;如果需要保持元素的顺序,列表和双向链接...
总的来说,C#集合类为开发者提供了丰富的工具来管理和操作数据。选择合适的集合类取决于具体需求,例如,是否需要保持元素插入顺序、是否需要快速查找(哈希表)或执行排序等。理解这些集合类的特性和用法对于编写...
这篇“c#集合ppt”可能是一个关于C#集合的演示文稿,通过PPT的形式深入浅出地介绍了集合的概念、类型以及使用方法。下面我们将详细探讨C#中的集合及其相关知识点。 1. **集合的概念**:集合是将多个元素组织在一起...
C# 提供了多种类型的集合,包括但不限于数组、ArrayList、List、HashSet、SortedSet、Stack、Queue 以及键值对集合如 Dictionary, TValue> 和 SortedDictionary, TValue> 等。每种集合都有其独特的特性和应用场景。 ...
### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....
在C#编程中,集合是用于存储一组相同类型对象的数据结构...理解并熟练运用这些C#集合的基本操作和特性,将有助于编写出更高效、易维护的代码。在实际开发中,应根据需求选择最适合的集合类型,以达到最佳性能和可读性。
在提供的“Ch1101”文件中,可能包含了演示以上集合用法的源代码,通过分析和运行这些示例,你可以深入理解C#集合的各种特性和应用场景。同时,实践编写和修改这些程序,将有助于提升你的C#编程技能。
这些集合在设计之初并未考虑到类型安全性的问题,因此它们只能存储 `object` 类型的对象,这导致了以下问题: 1. **性能问题**:由于非泛型集合存储的是 `object` 类型,这意味着当向集合中添加基本类型(如 `int`...
本篇文章将详细介绍6种常用的C#集合类,并通过比较来阐述它们与数组的区别。 首先,让我们回顾一下数组的不足之处: 1. **固定大小**:数组一旦创建,其大小是固定的。尽管可以使用`System.Array.Resize`方法改变...
本文将深入探讨C#集合的学习心得,并基于给出的部分内容进行详细阐述。 首先,数组作为基本的数据结构,有其固有的限制。数组大小在创建时即被固定,若需调整大小,必须借助`System.Array.Resize`方法,但这种方法...
在C#编程语言中,集合是一种用于存储多个项的数据结构,它...通过实例练习和不断探索,你将能够更好地理解和运用C#集合的特性。在实际编程中,选择合适的集合类型,结合Linq等工具,可以极大地提高代码的可读性和性能。
C#中的泛型和集合是编程中不可或缺的部分,特别是在ASP.NET Web项目的开发中,它们能够极大地提高代码的可重用性和性能。以下是对这些主题的深入解析: **泛型** 泛型是C#的一项强大特性,它允许在不指定具体数据...
### C#中的数组与集合类详解 #### 一、数组的概念与使用 在C#编程中,数组是一种非常重要的数据结构,它允许程序员以一种高效且有序的方式存储多个相同类型的数据项。数组不仅可以帮助简化代码,提高代码的可读性...
在C#中,System.Collections和System.Collections.Generic命名空间提供了各种集合类,如ArrayList、LinkedList、Queue和Stack等。然而,这些非泛型集合存在一些局限性,比如类型转换的开销和安全性问题。 泛型集合...
C#集合对象是编程中不可或缺的部分,理解并熟练掌握它们的使用能够帮助开发者更高效地管理数据。通过泛型,我们可以创建类型安全且性能良好的集合,而LINQ和并发支持则进一步增强了集合对象的实用性。在实际开发中,...
C#泛型集合是.NET框架中一个非常重要的概念,它为开发者提供了强大的数据处理能力,同时保持了代码的高效性和类型安全。在C#中,泛型集合允许我们在不指定具体数据类型的情况下定义和操作数据结构,这极大地提高了...
在C#中,集合是处理数据结构的一种强大方式,提供了灵活多样的容器来存储、操作数据。本篇文章将深入解析几种常见的集合类型:ArrayList、Queue、Hashtable、SortedList以及Stack,通过具体的代码示例和理论解释,...