- 0
- 0
- 约2.02千字
- 约 11页
- 2018-06-13 发布于河南
- 举报
(简化)8.1集合
数组的局限 能否动态的添加元素? ?集合 System.Collections 简介 ArrayList的初始化 引入System.Collections命名空间 实例化ArrayList对象 ArrayList 类的属性和方法 简单的例子 常见错误1 为什么使用HashTable ArrayList通过索引获取对象 Hashtable集合 使用哈希表 给哈希表添加元素 哈希表的遍历 集合 数组的局限性 理解集合的概念 熟练使用集合访问数据 string[] Students = new string[] {“aaa1, “aaa2, “aaa3}; 如果每个班级的人数不固定 班级中来了一个新的学员 班级人员的数组 调整大小困难 增加元素困难 重新定义数组 相同类型和名称变量的集合 操作元素功能不强 System.Collection 命名空间 类 接口 结构 对象组中元素个数未知,并且随时可能要循环、添加和移除 ArrayList Students = new ArrayList(); ArrayList Teachers = new ArrayList(5) 可以指定长度 int Add(Object value) //添加一个对象到集合的末尾 返回索引 (类型) ArrayList对象[index] //按指定索引(下标)取得对象 需要类型转换 ArrayList.Remove(对象名) //删除指定对象名的对象 ArrayList.RemoveAt(index) //删除指定索引的对象 ArrayList.Clear() //清除集合内的所有元素 剩余的元素会自动调整索引 Count Capacity 属性 TrimToSize RemoveAt Remove Insert Contains Add 方法 将容量设置为ArrayList中的实际元素个数 ArrayList list = new ArrayList(); //给数组增加10个Int元素 for( int i=0;i10;i++ ) list.Add(i); //将第6个元素移除 list.RemoveAt(5); //再增加3个元素 for( int i=0;i3;i++ ) list.Add(i+20); //返回ArrayList包含的数组 Int32[] values = (Int32[])list.ToArray(typeof(Int32)); 演示示例:ArrayList的使用 //… students.Add(aaa1); students.Add(Jone); students.Add(Rose); students.RemoveAt(0); students.RemoveAt(1); students.RemoveAt(2); 运行这段代码会发生错误? 索引会自动调整删除两个元素后,不再有索引“2“ 能否象索引器那样通过关键字获取该对象呢? C#提供一种集合 HashTable Students[“Jone].SayHi(); Student stu1 = (Student)Students[0]; 而索引器可以通过关键字获取对象 通过下标引用元素 通过关键字引用元素 例如:将人名做为键(key),将电话号码做为值(value)来存放 将人名引用为 Hash(或键)并将电话号码引用为值 Values Keys Count 属性 Hashtable students = new Hashtable(); Add Remove GetEnumerator 方法 students.Add(a.Name , a); 添加元素 Key Value … Student stu2 = (Student)students[ Jone ]; stu2.SayHi(); … 通过key获取元素 students.Remove( Jone ); … 通过key删除元素 获取哈希表的元素 删除哈希表的元素 需要类型转换 foreach (Object stuo in students.Values) { Student stu = (Student)stuo; Console.WriteLine(stu.Name); } 如何遍历一个哈希表? Key Value Key Value Key Value Key Value Key Value Values 不能遍历整个对象,而是遍历Values foreach (string name in students.Keys) { Console.WriteLine(name); } 可以遍历Keys 演示示例:
原创力文档

文档评论(0)