笔记:C#_数据结构_1_集合:源起

集合(Collection):源起

笔记:C#_数据结构_1_集合:源起_第1张图片

集合有什么用?
集合(Collection)类是专门用于 数据存储检索 的类。
数据结构 : 导言
是 计算机存储、组织、管理数据的方式。
是 指相互之间存在 一种或多种 特定关系的数据元素的 集合

地图:

  • 集合(Collection):源起
    • 故事:从数组开始
      • 序章:采集时代
      • 第二节:航海时代
        • 基础船只:数组
      • 第三节:造船术

下一章

故事:从数组开始

序章:采集时代

笔记:C#_数据结构_1_集合:源起_第2张图片

从前,有一片 大陆 (C# 语言系统),

上面 (预定义)很多个 民族(变量类型),
有int族,float族,string族 等等。

这些民族,都有一个共同点,
大家 修建的房屋(分配内存)只能够 住一个人(容纳单个数据)。

大家各自为政,孤独的生活着,出海打渔也是独来独往。
每到 日出时分(执行程序),大海上就会出现密密麻麻的小木筏。

int a=1;//木筏a 
int b=2;//木筏b
int c=3;//木筏c
...
int z=26;//木筏z

领主(程序员)看着眼花缭乱,
要关注每个人的行动,太费神费力了。

怎么治理好这片 海域(内存)呢?
于是领主造出了一艘 帆船(数据容器),命名为Array(数组)。
每个民族的人要出海统一坐上这条船,领主只需要关注这一条船就可以了。

int[] arr=new Array[26];//造大船出海 彻底摆脱小木筏

领主将设计图分发给每个民族,
这样一来,海上少了很多小木筏,
取而代之的是几艘较大的Array帆船。

int[] arr={1,2,3,...,26};//int族人,大家都上arr这条帆船
string[] arr_str={"A","B",...,"Z"};//string族人,你们上arr_str这条船

领主表示很满意!

To Top

第二节:航海时代

笔记:C#_数据结构_1_集合:源起_第3张图片

好景不长,领主又开始犯难了,
人(数据)是好管理了,但是造船遇到了新问题。

Array虽然便于管理,但是每次造的船,都有固定人数上限。
有时候出海人数少,船没坐满;
有时候出海人数多,船又坐不下。

当个领主真累啊!
于是领主,又从西方引进了一项新的技术:造船术(集合)。

有了造船术,就不用担心船的舱室问题了。
造船术能够根据出海的人数自动建造出相应的容量的船只。
领主再也不用为安排人员上船的问题而发愁了。

基础船只:数组

数组: 单桅帆船
第一个 可以管理 多个数据容器
对于 系统预定义类型中,都是针对 单个数据。
通过数组,可定义一个容器,来管理特定数量和类型的 多个 数据。
局限
虽说 数组 是一种非常有用的数据结构 但其存在 严重的局限性!
用数组管理数据, 必须 先知道 数组长度(元素个数)。
然而 实际开发 中,很多数据往往 无法 事先知道元素个数。
数组元素的 数据类型 必须 相同
应用程序 必须 通过循环索引 来访问元素
当你看到一堆必须时,你就知道它的局限性是多么严重!
小结
因此,数组使用并 不方便
集合 运应而生。
C#提供了 集合更为方便 地管理数据。
To Top

第三节:造船术

笔记:C#_数据结构_1_集合:源起_第4张图片

有了造船术,领主就把造船的任务委托给了造船厂。

一切变得如此的井然有序,既然造船术如此神奇,我们就一起学习一下这项技术吧。

数组

将一堆数据类型相同的数据放入到一个容器内,

该容器就是数组:内存中开辟的一连串空间。

造船术:类比理解 (集合就像造船术)

各种船只设计的统称,它们 不限定成员种族,

还能在航行过程中 按需扩容 。

术语:集合

简单的说就是数组的升级版。

集合 是通过高度结构化的方式存储任意对象的类的统称。

可存储 任意类型长度可变 的对象

可将一组类似的类型化对象组合在一起。

他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护!

优势:

集合不仅能随意调整大小,

而且对存储或检索在其中的对象提供了更为高级的方法。

扩展阅读

集合结构划分:
泛型集合 using System.Collections
非泛型集合 using System.Collection.Generic
.NET Framework 的 强类型集合
具有自动执行元素类型验证的功能
.NET Framework 引入了 泛型集合或非强类型非泛型集合
使用时要保证元素的类型是集合所需的类型
下一章
To Top

你可能感兴趣的:(C#)