作者:云都小生
集合概述
在数学上,我们都知道有集合这种概念,数组就是集合的其中一种。但是数组长度是固定的,数据类型也是固定的,这很繁琐。
非泛型集合接口 | 泛型集合接口 | 说明 |
---|---|---|
ICollection | ICollection<T> | 定义所有集合的大小(Count),枚举器(foreach)和同步(copyto)方法,继承自IEnumerable |
IList | IList<T> | 表示可按照索引单独访问的一组对象(像数组一样) |
IDictionary | IDictionary<T> | 表示键/值对的集合 |
IComparer | IComparer<T> | 定义类型为比较两个对象而实现的方法 |
IEqualityComparer | IEqualityComparer<T> | 定义方法以支持对象的相等比较 |
IEnumerable | IEnumerable<T> | 公开枚举器。实现了该接口意味着允许foreach语句循环访问集合中的元素 |
IEnumerator | IEnumerator<T> | 支持在泛型集合上进行简单迭代 |
ISet | IEnumerator<T> | 支持在泛型集合上进行简单迭代 |
这些接口都提供了一些集合的标准处理方法,在开发中我们经常用到的,都是ArrayList、HashTable、Queue和Stack。
ArrayList
ArrayList很像数组,但是并不是数组,它扩展了数组。ArrayList可动态扩展长度,可以存放各种不同的数据类型(但是一般都不会这么做)。
获取ArrayList集合的元素数时使用Count属性。
属性 | 说明 |
---|---|
Count | 获取 ArrayList 中实际包含的元素数。 |
IsReadOnly | 获取一个值,该值指示 ArrayList 是否为只读。 |
Item | 获取或设置指定索引处的元素。 |
方法 | 说明 |
---|---|
Add | 将对象添加到 ArrayList 的结尾处。 |
BinarySearch | 查找特定元素 |
Clear | 从 ArrayList 中移除所有元素。 |
Clone | 创建ArrayList的副本。 |
IndexOf | 返回 ArrayList 中某个值的第一个匹配项的从零开始的索引。 |
Insert | 将元素插入 ArrayList 的指定索引处。 可在任意位置插入。 |
LastIndexOf | 返回 ArrayList 或它的一部分中某个值的最后一个匹配项的从零开始的索引。 |
Remove | 从 ArrayList 中移除特定对象的第一个匹配项。 |
移除 ArrayList 的指定索引处的元素。 | |
Reverse | 将ArrayList中元素的顺序反转。 |
Sort | 对ArrayList的元素进行排序。 |
ToArray | 将 ArrayList 的元素复制到新数组中。 |
Contains | 确定某元素是否在 ArrayList 中 |
HashTable
HashTable是键/值对,看下面···
Hashtable ht = new Hashtable();
ht.Add(1,1);
ht.Add("我爱你","是吗?");
HashTabel和ArrayList都实现了ICollection和IEnumerable接口,所以方法基本上都差不多。
Queue
Queue是队列数据结构,元素先进先出。Queue类实现了ICollection和IEnumerable接口。
方法 | 说明 |
---|---|
Clear | 从Queue中移除所有对象,清空队列 |
Contains | 确定某元素是否在Queue中 |
Enqueue | 将对象添加到Queue的结尾处入列 |
Dequeue | 移除并返回位于Queue开始处的对象出列 |
Peek | 返回位于Queue开始出的对象,但不将其移除,与出列不同,出列是会移除的 |
Stack
Stack称为栈,栈和队列非常相似,熟悉栈机制的,都知道栈是后进先出,先进后出。
方法 | 说明 |
---|---|
Clear | 从Stack中移除所有对象,清空栈 |
Contains | 确定某元素是否在Stack中 |
Push | 将对象添加到Stack的结尾处入栈 |
Pop | 移除并返回位于Stack开始处的对象出栈 |
Peek | 返回位于Stack栈顶,但不将其移除,与出列不同,出列是会移除的 |
2018/1/20 0:12:01 @Athor:云都小生