红豆带你从零学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开发 ...
随机推荐
- UI线程与worker线程
也谈谈我对UI线程和worker线程的理解 UI线程又叫界面线程,能够响应操作系统的特定消息,包括界面消息.鼠标键盘消息.自定义消息等,是在普通的worker线程基础上加上消息循环来实现的,在这个消息 ...
- ME525+ 刷机工具及设置中心号码
接上篇: 刷机包下载地址http://sbf.droid-developers.org/umts_jordanplus/list.php,选择一款大陆包.... 设置中心号码: 拨打 *#*#46 ...
- 2014百度之星第四题Labyrinth(DP)
Labyrinth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 简单实现仿UITabBarController界面
第一步:添加两个占位View 第二步:添加子控制器 第三步:添加按钮 #import "ViewController.h" #define SCREEN_WIDTH ([UIScr ...
- 使用SuperWebSocket 构建实时 Web 应用
Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事, ...
- Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的适用版本
Jet 可以访问 Office 97-2003,但不能访问 Office 2007. ACE 既可以访问 Office 2007,也可以访问 Office 97-2003. 另外:Microsof ...
- [转]Java虚拟机类加载机制浅谈
Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流.JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎. 虚拟机将描述类的数据从Clas ...
- 20151120 jsp相关
jsp 声明表示.代码片段及引用 <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- HTML meta refresh 刷新与跳转(重定向)页面
<meta http-equiv="refresh" content="5; url=http://www.cnblogs.com/" /> 可用于 ...
- Java学习之finally关键字总结
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...