红豆带你从零学C#系列之:使用集合组织相关数据
ArrayList(数组列表)
Why:如果一个公司有5名员工,一般我们会用长度为5的对象数组来存储信息,但要是有新员工来了,5个长度的数组就不够用了,因此我们需要一种能够根据需要自动分配容量的动态数组
What:类似于数组的数据存储容器,它的容量是可以动态分配和调整的,并且提供了一系列的方法对其中的元素进行增删改的操作
Where:例如要存储一组不确定的人员信息、一组分数、一组字符串、或者一组符号
How:
语法:ArrayList array = new ArrayList();
- 容量会根据需要自动拓展
- 根据索引下标获取里面的元素:array[0],array[1]
- 删除其中一个元素之后,后面的元素会往前移,索引位置也会重新调整
- 任意数据类型放入ArrayList之后都会变成object类型,如果要拿出来使用的话,就要转化成相应的数据类型
- 按照“先进先出”顺序存储
int |
Count |
返回ArrayList中实际包含的元素个数 |
void |
Add(Object value) |
将对象添加到ArrayList结尾处 |
void |
RemoveAt(int index) |
移除指定索引处的元素 |
void |
Remove(Object value) |
移除特定的对象 |
void |
Clear() |
从ArrayList中移除所有元素 |
HashTable(哈希表)
语法:HashTable hash = new HashTable();
- 哈希表每一个数据存放都是以“键/值对”的方式来进行的
- 哈希表不能通过索引下标访问元素,只能用foreach来访问
- 任意数据类型放入HashTable之后都会变成object类型,如果要拿出来使用的话,就要转化成相应的数据类型
- 按照“先进后出”的顺序存储
int |
Count |
返回ArrayList中实际包含的元素个数 |
void |
Add(Object key,Object value) |
将对象添加到HashTable结尾处 |
void |
Remove(Object value) |
移除特定的对象 |
void |
Clear() |
从HashTable中移除所有元素 |
课堂编程题:
做两个空方法,分别使用ArrayList和HashTable两个集合插入5名学生,添加完之后,都要删除“张三”这名学生,再删除集合里面最后一名学生,最后循环集合输出所有学生信息
最后把ArrayList和List<T> 、HashTable和Dictionary<K,V>进行代码互换,List<T>和Dictionary<K,V>集合的用法就该学会了。
List<T>泛型集合
语法:List<T> list = new List<T>();
- 容量会根据需要自动拓展
- 根据索引下标获取里面的元素:array[0],array[1]
- 删除其中一个元素之后,后面的元素会往前移,索引位置也会重新调整
- 按照“先进先出”顺序存储
Dictionary<K,V>泛型集合
语法:Dictionary<k,v> dict = new Dictionary<k,v>();
- 哈希表每一个数据存放都是以“键/值对”的方式来进行的
- 哈希表不能通过索引下标访问元素,只能用foreach来访问
- 按照“先进后出”的顺序存储
红豆带你从零学C#系列之:使用集合组织相关数据的更多相关文章
- 红豆带你从零学C#系列之——初识C#
问题一:什么是C#? C#是微软公司在2000年新推出的一款运行在.NET Framework平台上面的编程语言,这个.NET Framework平台又怎么去理解呢?举个例子来说好了,一个土著族人只会 ...
- 红豆带你从零学C#系列—Visual Studio工具介绍、下载和安装
一.Visual Studio的下载 Visual Studio(简称VS)是微软的一套完整的开发工具集,集成了能够开发并运行如C#.C++.VB.F#等程序的开发环境,目前最新的版本是Visual ...
- 红豆带你从零学C#系列之:初识继承与多态
继承 现实生活当中,人类又可以根据职业分为:教师,学生,理发师,售货员 又比如飞机又有种类之分:直升飞机.客机.货机.战斗机等 在程序里面我们可能会通过创建类来描述这样的事物,比如学生类.教师类.理发 ...
- 红豆带你从零学C#系列之:开始C#编程(二)
控制台程序开发之补充说明 你已经动手操作过我们上一篇文章中的控制台程序输入输出了吗朋友? 如果没有的话,强烈建议你先回去做一遍再来继续学习噢!上一篇文章地址:点击这里 一. 你问我答 问:代码是 ...
- 红豆带你从零学C#系列之:开始C#编程(一)
让我们开始学习C#编程吧 作者:红豆西米露 交流QQ:937802080 前面的文章里给大家介绍了C#语言的一些基本认识,现在我们来开始做一个小程序吧! 在这里以我们以“控制台应用程序”来作演示. P ...
- 带你从零学ReactNative开发跨平台App开发(二)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发-[react native 仿boss直聘](十三)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(十一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
随机推荐
- Hibernate 、多表关联映射 - 一对一关系映射(one- to-one)
hibernate.cfg.xml: <hibernate-configuration> <session-factory name="sessionFactory&quo ...
- #include <QPushButton>
类QPushButton 命令按钮 #include "mainwindow.h" #include <QApplication> int main(int argc, ...
- javascript时间处理方法收集
首先收集到的是一个给某一个时间对象增加一段时间的方法, 例如2026-05-11增加一个月的时间,增加后时间为2026-05-11, 代码如下: function DateAdd(interval,n ...
- JS继承,原型继承,构造函数的继承,非构造函数"的继承
a.原型继承 一.new运算符的缺点 用构造函数生成实例对象,有一个缺点,那就是无法共享属性和方法.比如,在DOG对象的构造函数中,设置一个实例对象的共有属性species. function DOG ...
- 关于css3中before与after用单冒号还是双冒号的疑虑
在 CSS3 中为了区别伪元素和伪类为伪元素使用了双冒号,因此如果使用了 display 或者 width 等属性时使得显示脱离了原本元素后,建议按照标准双写.
- ER图与UML图
ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来描述现实世界的概念 ...
- php7 install script
./configure --prefix=/home/admin/local/php7 --with-gd=/home/admin/local/libgd-2.1.1/ --with-jpeg-dir ...
- MYSQL定时创建表分区
MYSQL定时创建表分区 一.存储过程-表分区-----------------------------------------------------------------需求: 每月创建一个分区 ...
- linux杂记(一)各硬件装置在linux中的代号
装置 装置在linux内的代号 IDE硬盘机 /dev/hd[a-d] SCSI硬盘机 /dev/sd[a-p] U盘 /dev/sd[a-p](与SCSI硬盘一样) CDROM /dev/cdrom ...
- WebService之Axis2
写在前面 本文只说Axis2的用法. 1.下载与部署 需要下载两个文件: 下载地址:http://mirrors.cnnic.cn/apache/axis/axis2/java/core/1.7.1/ ...