C#---API-01(Application Programming Interface-01)

一、集合概述

1.1 概念

用以存储数据,将紧密相关的数据组合到一个集合中。

1.2 集合与数组的区别

数组一旦定义,无法改变其大小;集合可以动态的调整大小。

二、集合类别

*ArrayList :保存object类型的数组列表(什么类型都可以:int、double、string...)

*HashTable:散列表,可通过关键字访问值

*Queue:队列

*Stack:堆栈

*StringDictionary:将键和值强类型转化为字符串而不是对象来实现哈希表

*SortedList:表示键、值对的集合,这些键值对按键排序并可按照键和索引访问

三、ArrayList类

3.1 概念:特殊的数组,通过添加和删除元素可以动态改变数组的长度。命名空间:Using System.Collection's;

3.2 添加元素

 3.2.1  Add()追加元素

ArrayList   alist=new ArrayList();

alist.Add(“a”);//将string'类型的a放入alist

alist.Count    //代表这个集合的长度

3.2.2 Insert()插入元素

alist.Insert(0,“b”);//在集合的第一个位置插入string类型的b;

alist.Insert(3,‘c’);//在集合的第四个位置插入char类型的c;

3.3 删除元素

3.3.1 Remove()删除指定元素

alist.Add(“a”);

alist.Add(“b”);

alist.Remove(“a”);//删除集合中a这个元素

3.3.2 RemoveAt()按索引删除元素

alist.RemoveAt(3);//删除第四个位置的元素

3.3.3 Clear()删除所有元素

alist.Clear();//类似于一个方法,直接使用,没有参数

3.3.4 Sort()排序

alist.Sort();//对集合alist进行升序排列

3.3.5 查找

3.3.5.1 IndexOf() 搜索指定元素,返回第一个匹配项的从零开始的索引(返回的是该元素在集合中的位置)

alist.IndexOf(“a”);//第一次出现元素a的位置;

alis.IndexOf(“a”,2);//第二次出现元素a的位置;...........

3.3.5.2 LastIndexOf()搜索最后一个匹配项,从后往前搜索

3.3.5.3 Contains确定某个元素是否在集合中

alis.Constains(“a”);//检测a是否存在于集合alist中,是的话返回True,否的话返回False

四、Stack类

4.1 概念:后进先出的集合。命名空间:Using System.Collections;

4.2 入栈:Push

Stack sk=new Stack();

foreach(int  i  in  new  int[4]  {1,2,3,4})

{

sk.Push(i);//填充sk

}   //遍历后得到4,3,2,1(后进先出);

4.2 出栈:Pop

sk.Pop()//出栈一个元素;

4.3 Peek

sk.Peek()//查看栈顶对象但不出栈

五、Queue类

5.1 概念:队列,先进先出     命名空间:Using System.Collections;

5.2 添加Enqueue

Queue qu=new Queue();

foreach(int  i  in  new  int[4]  {1,2,3,4})

{

qu.Enququ(i);//填充qu

}   //遍历后得到1,2,3,4(先进先出);

5.3 移出并返回队列开始的对象 -- Dequeue

qu.Dequeue();类似于Stack中的Pop;

5.4 Peek返回队列开始处的对象但不移除

sk.Peek()//查看队列开始处的对象但不移出

六、HashTable类

6.1 概念:键、值对的集合。命名空间:Using System.Collections;

6.2 添加Add及遍历显示

例:

HashTable ht=new HashTable();

ht.Add(“name”,“唐僧”);

ht.Add(“age”,28);

.........

//ht.Add(“name”,“玄奘”);//这个是错误的---关键字不能重复!!!

foreach(DictionaryEntry de in ht)

{

console.WriteLine(“{0}-----{1}”,de.Key,de.Value);

}

输出结果:

name---唐僧

age---28

6.3 Remove  移除键和值

ht.Remove(“name”);//代表移除了name这一键和值

6.4 应用

如果只知道Key且不知道Value,并且需要频繁修改,那么需要使用HashTable,因为HashTable添加删除时无序的,速度快。

七、StringDictionary类

7.1 概念:与HashTable类似,但是键和值固定存放字符串。命名空间:Using System.Collections.Specialized;

7.2 注意事项:

使用上与HashTable基本相同,但是注意 键 不区分大小写,所有的 键 都会自动转化成小写。

与HashTable相比,性能更好,省去了装箱拆箱的过程。

八、SortedList类

8.1 概念:与HashTable类似,这些键值对按键排序并可按照键和索引(位置)访问,命名空间:Using System.Collections;

8.2 使用:

SortedList会自动进行排序;

SortedList sl=new SortedList();

console.Writeline(sl.GetByIndex(1));//代表的是获取排序后第二个键所对应的值;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访...
    小明yz阅读 2,630评论 0 3
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX阅读 893评论 0 1
  • https://msdn.microsoft.com/zh-cn/library/system.collectio...
    LH_晴阅读 452评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 阿浪的猫咪长得好可爱,它看起来好温顺哦。阿浪一定经常抱着他的猫咪入睡吧。 阿浪在躺椅上看书时猫咪一定依偎他身上,静...
    小善缘pure阅读 462评论 0 0