C#的集合
- C#集合简介
集合与数组比较类似,都用于存放一组值,但集合中提供了特定的方法能直接操作集合中的数据,并提供了不同的集合类来实现特定的功能。
集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集内最大元素的个数进行定义和维护! 所有集合类或与集合相关的接口命名空间都是 System.Collection。
- 动态数组
C# ArrayList 类(动态数组)是一个最常用的集合类,与数组的操作方法也是最类似的。
ArrayList 代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。 但是,与数组不同的是,ArrayList 可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。
同时 ArrayList 也允许在列表中进行动态内存分配、增加、搜索、排序各项。
创建 ArrayList 类的对象需要使用该类的构造方法,如下表所示:
构造方法 | 作用 |
ArrayList() | 创建 ArrayList 的实例,集合的容量是默认初始容量 |
ArrayList(ICollection c) | 创建 ArrayList 的实例,该实例包含从指定实例中复制的元素,并且初始容量 与复制的元素个数相同 |
ArrayList(int capacity) | 创建 ArrayList 的实例,并设置其初始容量。 |
- 构造方法的使用:
ArrayList listl=new ArrayList();
ArrayList list2=new ArrayList(listl);
ArrayList list3=new ArrayList(20);
- 队列
Queue (队列) 是常见的数据结构之一,队列是一种先进先出的结构,即元素从队列尾部插入,从队列的头部移除,类似于日常生活中的站队,先到先得的效果。
集合中的Queue类模拟了队列操作,提供了队列中常用的属性和方法。
增长因子是指当需要扩大容量时,以当前的容量(capacity)值乘以增长因子(growFactor)的值来自动增加容量。
- 堆栈
Stack (栈)是常见的数据结构之一,栈是一种先进后出的结构,即元素从栈的尾部插入,从栈的尾部移除,类似于日常生活中搬家的时候装车,先装上车的东西要后拿下来。
集合中的stack类模拟了栈操作,提供的栈中常用的属性和方法。
Stack类提供了3种构造方法,如图所示:
构造方法 | 作用 |
Stack() | 使用初始容量创建stack的对象 |
Stack(collection col) | 创建stack的实例,该实例包含从指定实例中复制的元素,并初始化量的个数,增长因子相同 |
Stack(int capacity) | 创建stack的实例,并设置其初始容量 |
Stack类中的常用属性和方法如下:
属性或方法 | 作用 |
Push(object obj) | 向栈添加元素,也称入栈 |
Object Peek() | 用于获取栈顶元素的值,但不移除栈顶元素的值 |
Object pop() | 用于移除栈顶元素的值,并移除栈顶元素 |
Clear() | 从Stack中移除所有的元素 |
Contains(object obj) | 判断,某个元素是否在stack中 |
Object ToArray() | 复制stack到一个新的数组中 |