黑马程序员--数组与集合
来源:互联网 发布:程序员标准形象 编辑:程序博客网 时间:2024/06/06 04:02
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- ----------------------
数组:继承自 Array类。
命名空间:using System.Collections.Generic;
数组的长度为固定的。
方法:提供创建、操作、搜索和排序数组的方法。下面都是静态的,使用时前面加上 Array
BinarySearch():使用二进制(二分法)搜索值,但之前要排序。
Clear():将Array一系列元素设定为零、false或null,具体依数组的类型。要指定范围。
ConstrainedCopy():将源Array复制到另一个Array。可以设定范围,未成功则回滚。
Copy():一个Array中的一部分复制到另一个Array中。
CopyTo():将当前Array的所有元素复制到另一个Array中。
IndexOf():返回Array中某个值的第一个匹配项的索引。
Sort():对Array中的元素进行排序。升序。
属性:
IsFixedSize: 指示Array是否具有固定大小。
IsReadOnly:指示Array是否只读。
Length:表示Array中所有维数中元素的个数。
实例代码:
public int [] sz;//初始化数组的大小 public bool szbl = false; private void button1_Click(object sender, EventArgs e) { sz =new int[]{ 2, 3, 5, 1, 9, 6 }; //初始化6个元素 Msg("数组初始化成功!"); szbl = true; } public void Msg(string s) { txtMsg.AppendText(s+"\r\n"); } private void btnAyLength_Click(object sender, EventArgs e) { if (szbl == false) { MessageBox.Show("请先初始化数组"); return; } int i = sz.Length;//返回数组的长度,元素的个数; string s = string.Format("数组的容量为{0}", i); Msg(s); } private void btnAyIndexOf_Click(object sender, EventArgs e) { if (txtAy.Text.Trim() == "") { MessageBox.Show("查询栏不得为空!"); return; } int i = int.Parse(txtAy.Text.Trim()); //获取查询的值 int zb = Array.IndexOf(sz, i); //查询方法 Array.IndexOf() string s; if (zb == -1) { s = string.Format("未找到这个数字!"); } else { s = string.Format("已找到,是第{0}个位置!",zb+1); } Msg(s); } private void btnAySort_Click(object sender, EventArgs e) { string s=""; foreach (int ys in sz) { s += ys.ToString() + " "; } Msg(s); Msg("排序后的元素"); s = ""; Array.Sort(sz); //排序的方法,从小到大。 foreach (int ys in sz) { s += ys.ToString() + " "; } Msg(s); } private void btnCopyTo_Click(object sender, EventArgs e) { string s=""; int[] xsz = new int[sz.Length]; Array.Copy(sz, xsz, sz.Length); //从一个Array复制到另一个Array foreach (int ys in sz) { s += ys.ToString() + " "; } Msg("老数组:"); Msg(s); s = ""; foreach (int ys in xsz) { s += ys.ToString() + " "; } Msg("新数组:"); Msg(s); } private void btnClear_Click(object sender, EventArgs e) { Array.Clear(sz,0,sz.Length); //清空数组,参数为范围 Msg("清空数组成功!"); }
集合: ArrayList类
命名空间为:using System.Collections;
具有常规数组的类似功能,并能动态调整集合的大小。
向当前大小少于其容量的ArrayList插入元素非常快,向需要增大空间来容纳新元素的ArrayList插入元素比较慢。
如果ArrayList需要增大容量,默认情况下会将容量增大为当前值的2 倍。
方法:
Add:将对象添加到ArrayList的结尾处。
AddRange:可以将集合添加到此ArrayList中。
Clear:移除所有的元素。
Contains:确定某元素是否在ArrayList中。
IndexOf:返回指定对象第一次出现时的索引值。
Remove:移除指定对象的第一个匹配。
RemoveAt:移除指定索引位置上的对象,后面的对象下标向前移动。
Sort:对ArrayList进行排序。升序。
TrimToSize:将Capacity的大小设为当前所包含的元素的个数。
属性:
Capacity:获取或设置ArrayList可包含的元素值。
Count:获取ArrayList实际包含的元素数。
代码示例:
public void Msg(string s) { txtMsg.AppendText(s + "\r\n"); } public ArrayList jihe; private void btnAylistIn_Click(object sender, EventArgs e) { jihe = new ArrayList {3,5,6,9,2,1 }; //初始化集合 Msg("集合初始化成功!"); } private void btnAyLCount_Click(object sender, EventArgs e) { int i = jihe.Count; //获取集合的元素总数 string s = string.Format("集合内的元素为{0},允许的元素为{1}",i,jihe.Capacity); Msg(s); } private void btnAyLSort_Click(object sender, EventArgs e) { string s = ""; foreach (int ys in jihe) { s += ys.ToString() + " "; } Msg(s); Msg("排序后的元素"); s = ""; jihe.Sort(); //对集合进行排序,升序。 foreach (int ys in jihe) { s += ys.ToString() + " "; } Msg(s); } private void btnAyLIndex_Click(object sender, EventArgs e) { if (txtAyList.Text.Trim() == "") { MessageBox.Show("查询栏不得为空!"); return; } int i = int.Parse(txtAyList.Text.Trim()); //所要查询的值 int zb = jihe.IndexOf(i); //根据值查询下标,如果不存在 返回-1 string s; if (zb == -1) { s = string.Format("未找到这个数字!"); } else { s = string.Format("已找到,是第{0}个位置!", zb + 1); } Msg(s); } private void btnAyLadd_Click(object sender, EventArgs e) { if (txtAyList.Text.Trim() == "") { MessageBox.Show("查询栏不得为空!"); return; } int i = int.Parse(txtAyList.Text.Trim()); jihe.Add(i); //调用.Add方法,向集合添加元素 string s = string.Format("加入的元素为{0}", i); Msg(s); } private void btnAyLClear_Click(object sender, EventArgs e) { jihe.Clear(); //移除集合的所有元素 Msg("移除了集合的所有元素!"); }
数组与集合的区别:
1.数组大小固定,集合可以调整。
2.获取元素的总算:数组的属性是Length ,集合的是Count。
3.清空元素的值:都是调用Clear方法,数组需要有范围:第二个参数为起始的下标,第三个参数为要清空的长度。 集合直接调用Clear()清空所有的元素。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- ----------------------
- 黑马程序员--数组与集合
- 黑马程序员--数组与集合
- 黑马程序员--数组和集合
- 黑马程序员——数组与集合的转换
- 黑马程序员-day17-集合与数组工具类
- 黑马程序员_java集合(2) 泛型&数组与集合工具类
- 黑马程序员_十二 【Map集合】【集合与数组互转】
- 黑马程序员-集合与泛型集合
- 黑马程序员,集合转转数组,数组转集合
- (黑马程序员)数组转集合要点总结
- 黑马程序员_数组和集合
- 黑马程序员---语句与数组
- 黑马程序员 函数与数组
- 黑马程序员-数组与指针
- 黑马程序员 指针与数组
- 黑马程序员 - 数组与指针
- 黑马程序员--函数与数组
- 【黑马程序员】方法与数组
- 详细解析Linux scp命令的应用
- 文件啊文件(2)FAT32格式~
- 过华为论-观华为二十年盛衰史有感
- Linux配置教程之五:apache安装配置
- 一个学习silverlight游戏的网站
- 黑马程序员--数组与集合
- Extjs+struts2 实现文件上传
- C#Zip方式压缩文件和解压缩文件代码
- 文件(3)NTFS文件格式解析完了
- sybase Sybase Central v6.0启动 弹出插件无法加载
- Linux系列之vim
- vi/vim 键盘图(中英文)及vim 快捷键壁纸
- node.js初接触
- 文件(3)NTFS文件格式解析完了