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

C#集合之QUEUE

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

 

1、Queue定义

System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。

2.优点

1、能对集合进行顺序处理(先进先出)。

2、能接受null值,并且允许重复的元素。

3. Queue的构造器

构造器函数

注释

Queue ()

初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。

Queue (ICollection)

初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。

Queue (Int32)

初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。

Queue (Int32, Single)

初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。

4、Queue的属性

属性名

注释

Count

获取 Queue 中包含的元素数。

5. Queue的方法

方法名

注释

Void Clear()

从 Queue 中移除所有对象。

Bool Contains(object obj)

确定某元素是否在 Queue 中。

Object Clone()

创建 Queue 的浅表副本。

Void CopyTo(Array array,int index)

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

Object Dequeue()

移除并返回位于 Queue 开始处的对象。

Void Enqueue(object obj)

将对象添加到 Queue 的结尾处。

Object Peek()

返回位于 Queue 开始处的对象但不将其移除。

Object[]ToArray()

将 Queue 元素复制到新数组。

Void TrimToSize()

将容量设置为 Queue 中元素的实际数目。

 

6、Queue的使用示例

 

class Program
    {
        static void Main(string[] args)
        {
            //创建一个队列
            Queue myQ = new Queue();
            myQ.Enqueue("The");//入队
            myQ.Enqueue("quick");
            myQ.Enqueue("brown");
            myQ.Enqueue("fox");
            myQ.Enqueue(null);//添加null
            myQ.Enqueue("fox");//添加重复的元素

            // 打印队列的数量和值
            Console.WriteLine("myQ");
            Console.WriteLine("\tCount:    {0}", myQ.Count);

            // 打印队列中的所有值
            Console.Write("Queue values:");
            PrintValues(myQ);

            // 打印队列中的第一个元素,并移除
            Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());

            // 打印队列中的所有值
            Console.Write("Queue values:");
            PrintValues(myQ);

            // 打印队列中的第一个元素,并移除
            Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());

            // 打印队列中的所有值
            Console.Write("Queue values:");
            PrintValues(myQ);

            // 打印队列中的第一个元素
            Console.WriteLine("(Peek)   \t{0}", myQ.Peek());

            // 打印队列中的所有值
            Console.Write("Queue values:");
            PrintValues(myQ);

            Console.ReadLine();

        }

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

 

7.备注

1、Queue 的容量是 Queue 可以保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将通过重新分配来根据需要自动增大容量。可通过调用 TrimToSize 来减少容量。等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。默认增长因子为 2.0。

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

3、空引用可以作为值添加到 Queue。若要区分空值和 Queue 结尾,请检查 Count 属性或捕捉 Queue 为空时引发的 InvalidOperationException

分享到:
评论

相关推荐

    C#集合与字符窜处理C#集合与字符窜处理(源代码)

    在C#编程语言中,集合和字符串处理是两个至关重要的概念。集合是存储一组对象的容器,而字符串处理则是对文本数据进行操作的核心技术。在这个压缩包中,我们很可能是得到了一系列关于这两个主题的源代码示例,这些...

    C# 集合的常用方法

    - 使用泛型:C# 2.0及更高版本引入了泛型集合,如List、Stack、Queue和Dictionary, TValue>,它们在类型安全和性能上优于非泛型集合。 学习和熟练掌握这些集合类的使用,对于编写高效、健壮的C#代码至关重要。通过...

    C#集合的概念

    学习C#集合时,开发者需要熟悉这些泛型集合的接口、属性和方法,以便在实际开发中选择合适的集合类型来满足特定需求。例如,如果需要快速查找元素,哈希集和字典可能更适合;如果需要保持元素的顺序,列表和双向链接...

    C#集合类 教程学习资源

    总的来说,C#集合类为开发者提供了丰富的工具来管理和操作数据。选择合适的集合类取决于具体需求,例如,是否需要保持元素插入顺序、是否需要快速查找(哈希表)或执行排序等。理解这些集合类的特性和用法对于编写...

    c# queue 队列例子

    5. **性能优化**:根据需求,你可能要考虑队列的大小限制,避免内存过度消耗,或者使用`ConcurrentQueue`等线程安全的集合,以提高并发性能。 在“WindowsApplication3”项目中,这个示例可能包含了一个简单的UI,...

    c#集合ppt

    这篇“c#集合ppt”可能是一个关于C#集合的演示文稿,通过PPT的形式深入浅出地介绍了集合的概念、类型以及使用方法。下面我们将详细探讨C#中的集合及其相关知识点。 1. **集合的概念**:集合是将多个元素组织在一起...

    c#官方线程安全集合源码

    在.NET框架中,C#提供了一系列的线程安全集合类,这些类被设计为在多线程环境下可以安全地进行数据操作。这些类是通过`System.Collections.Concurrent`命名空间提供的,确保了在并发访问时的数据一致性。让我们深入...

    C# 集合 使用总结

    C# 提供了多种类型的集合,包括但不限于数组、ArrayList、List、HashSet、SortedSet、Stack、Queue 以及键值对集合如 Dictionary, TValue> 和 SortedDictionary, TValue> 等。每种集合都有其独特的特性和应用场景。 ...

    C# 集合应用

    在C#编程中,集合是用于存储一组相同类型对象的数据结构...理解并熟练运用这些C#集合的基本操作和特性,将有助于编写出更高效、易维护的代码。在实际开发中,应根据需求选择最适合的集合类型,以达到最佳性能和可读性。

    C# 关于集合的程序

    在提供的“Ch1101”文件中,可能包含了演示以上集合用法的源代码,通过分析和运行这些示例,你可以深入理解C#集合的各种特性和应用场景。同时,实践编写和修改这些程序,将有助于提升你的C#编程技能。

    C#泛型集合与非泛型集合

    这些集合在设计之初并未考虑到类型安全性的问题,因此它们只能存储 `object` 类型的对象,这导致了以下问题: 1. **性能问题**:由于非泛型集合存储的是 `object` 类型,这意味着当向集合中添加基本类型(如 `int`...

    C#集合容器(collection)详解

    ### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....

    c# 中的arrlist queue HashtableTest SortedList stack 集合

    在C#中,集合是处理数据结构的一种强大方式,提供了灵活多样的容器来存储、操作数据。本篇文章将深入解析几种常见的集合类型:ArrayList、Queue、Hashtable、SortedList以及Stack,通过具体的代码示例和理论解释,...

    c#集合的学习读书笔记 学习心得

    本文将深入探讨C#集合的学习心得,并基于给出的部分内容进行详细阐述。 首先,数组作为基本的数据结构,有其固有的限制。数组大小在创建时即被固定,若需调整大小,必须借助`System.Array.Resize`方法,但这种方法...

    c#集合的一些小例子

    在C#编程语言中,集合是一种用于存储多个项的数据结构,它...通过实例练习和不断探索,你将能够更好地理解和运用C#集合的特性。在实际编程中,选择合适的集合类型,结合Linq等工具,可以极大地提高代码的可读性和性能。

    C#的6种常用集合类大比拼

    本篇文章将详细介绍6种常用的C#集合类,并通过比较来阐述它们与数组的区别。 首先,让我们回顾一下数组的不足之处: 1. **固定大小**:数组一旦创建,其大小是固定的。尽管可以使用`System.Array.Resize`方法改变...

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

    C#中的泛型和集合是编程中不可或缺的部分,特别是在ASP.NET Web项目的开发中,它们能够极大地提高代码的可重用性和性能。以下是对这些主题的深入解析: **泛型** 泛型是C#的一项强大特性,它允许在不指定具体数据...

    C#集合对象详解

    C#集合对象是编程中不可或缺的部分,理解并熟练掌握它们的使用能够帮助开发者更高效地管理数据。通过泛型,我们可以创建类型安全且性能良好的集合,而LINQ和并发支持则进一步增强了集合对象的实用性。在实际开发中,...

    C#中的泛型集合

    在C#中,System.Collections和System.Collections.Generic命名空间提供了各种集合类,如ArrayList、LinkedList、Queue和Stack等。然而,这些非泛型集合存在一些局限性,比如类型转换的开销和安全性问题。 泛型集合...

    C#泛型集合

    C#泛型集合是.NET框架中一个非常重要的概念,它为开发者提供了强大的数据处理能力,同时保持了代码的高效性和类型安全。在C#中,泛型集合允许我们在不指定具体数据类型的情况下定义和操作数据结构,这极大地提高了...

Global site tag (gtag.js) - Google Analytics