c#集合、数组

集合的概念
集合原本是数学上的一个概念,表示一组具有某种性质的数学元素,引用到程序设计中表示一组具有相同性质的对象。集合好比容器,将一系列相似的组合一起,是一个特殊的类,和数组一样,可以通过索引访问集合成员,也可以通过”键”来访问,与传统数组不同的是,集合的大小可以动态调整,可以在运行时添加或删除元素。

集合的类型
可分为两类:泛型集合和非泛型集合
泛型集合一般位于System.Collections.Generic名称空间
非泛型集合一般位于System.Collections名称空间
System.Collections.Specialized名称空间中也包含一些有用的集合类

常见的集合
下面是各种常用的System.Collections 命名空间的类
非泛型集合:动态数组(ArrayList)、栈堆(Stack)、队列(Queue)、哈希表(Hash Table)
图片: https://uploader.shimo.im/f/kvdfPkoOC8tVZ41U.png

下面是各种常用的System.Collections.Generic 命名空间的类
泛型集合:Dictionary<TKey,TValue>、List、Stack、Queue
图片: https://uploader.shimo.im/f/15kngtBr53tpW4S7.png

集合的类成员与用法
动态数组ArrayList
1.动态增加和减少元素
2.实现了ICollection和IList和IEnumberable接口
3.灵活设置数组的大小
4.不安全的集合类型
5.其元素为值类型的时候效率不高(装箱和拆箱耗能高)
ArrayList的常用方法和描述图片: https://uploader.shimo.im/f/Ls9URnPD4RCQ6gXV.png

泛型动态数组List
1.List是ArrayList的泛型等效类
2.同样实现了ICollection和IList和IEnumberable接口
3.声明集合时需要声明集合内部的数据类型,即T的类型
4.安全的集合类型
5.某种情况时,处理值类型速度比ArrayList快的多
List的常用方法与描述图片: https://uploader.shimo.im/f/lZMptPZ5l41UNr83.png

接口说明
常见的集合和列表实现接口
图片: https://uploader.shimo.im/f/wt7gJh9sKEIjkfgk.png

栈堆-Stack
栈堆
1.后进先出(LIFO)的一种数据结构,本质也是一种线性结构
2.线性结构的特点:每个节点都只有一个前驱和一个后继
3.随着向Stack中添加元素,容量通过重新分配按需自动增加
4.可以接受null作为有效值
5.允许重复的元素
6.不安全的数据结构
7.其泛型为Stack
Stack的常用方法与描述图片: https://uploader.shimo.im
/f/ZGeBBcjFrWLTgnlQ.png
队列-Queue
1.先进先出(FIFO)的一种数据结构
2.可以接受null为空值
3.允许重复的元素
4.不安全的数据结构
5.其泛型为Queue
Queue的常用方法和描述
图片: https://uploader.shimo.im/f/4XUoM5EBIrYWt7sb.png

哈希表-HashTable
1.处理和表现类似Key-Value键值对的集合
2.Key和Value都是Object类型
3.Key值必须唯一,区分大小写
4.Value可以使值类型,也可以是对象
HashTable的常用方法和描述
图片: https://uploader.shimo.im/f/tfpo7Qo0XnIhWTgW.png

字典-Dictionary<K,V>
1.处理和表现类似Key-Value键值对的集合
2.Key和Value的类型都有泛型指定
3.Key值必须唯一,区分大小写
4.Value可以使值类型,也可以是对象、
常用方法与描述
图片: https://uploader.shimo.im/f/QnuyStVleVlEaoYf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值