红豆带你从零学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开发 ...
随机推荐
- 基于Platinum库的DMS实现(android)
接上篇博文:基于Platinum库的DMR实现(android) 文章讲述了如何使用Platinum库实现DMR 今天同样使用该库,来讲解一下DMS的实现 关于该库如何编译,请参考这篇博文:NDK下 ...
- Chocolate&&木块拼接&&Cards&& Wet Shark and Bishops
B. Chocolate time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- OAuth2 for asp.net web api
在上篇文章中我研究了OpenId及DotNetOpenAuth的相关应用,这一篇继续研究OAuth2. https://github.com/DotNetOpenAuth http://www.cnb ...
- workspace & subProject & target
workspace & subProject & target http://blog.itpub.net/12231606/viewspace-1079867/ 最近新入一个项目组, ...
- 02151216--Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 20151204--JDBC
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Windows vista以上模拟Alt Ctrl Delete
之前客户要求我们能够在windows登陆界面能够用指定账户批量控制机器登陆,然后用windows credentials provider(vista以上,xp需要用Gina)实现了这个功能,这期间遇 ...
- EC读书笔记系列之12:条款22、23、24
条款22 将成员变量声明为private 记住: ★切记将成员变量声明为private.这可赋予客户访问数据的一致性.可细微划分访问控制.允诺约束条件获得保证,并提供class作者以充分的实现弹性. ...
- 开发环境配置--Ubuntu+Qt4+OpenCV(二)
同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...
- const和非const函数重载
成员函数后面加const,表示在该函数中不能对类的数据成员进行改变,比如下面的代码: #include <stdio.h> class A { private: mutable int a ...