c程序设计语言第5章集合.pptxVIP

  • 3
  • 0
  • 约7.22千字
  • 约 21页
  • 2021-12-04 发布于北京
  • 举报
第5章 集合王忠民内容简介 上一章我们主要学习了数组的相关知识,包括一维数组、二维数组和多维数组等,它们都是静态数组。静态数组有一个最大的弊端,就是一旦数组元素完成初始化工作,要在程序中动态添加和删除某个元素是非常困难的。 为了解决这个问题。.NET引入了各种各样的集合对象,如Hashtable、Stack以及上一章的ArrayList集合类等。 本章我们将详细介绍集合的相关知识,包括集合概念、C#中的内置集合以及如何自定义集合等内容。5.1 集合概述 集合好比容器,将一系列相似的组合一起,就如同数组,用来存储和管理一组特定类型的数据对象。除了基本的数据处理功能,还直接提供了各种数据结构及算法的实现,如队列、哈希表、排序等,可以让用户轻易地完成复杂的数据操作。 C#提供的集合都在命名空间System.Collections中。集合说明ArrayList动态数组,可以动态增加数组和删除数组等Hashtable哈希表,表示键/值对的集合,这些键/值对根据键的哈希代码进行组织Stack堆栈,表示对象的后进先出集合Queue队列,表示对象的先进先出集合BitArray布尔集合类,管理位值的压缩数组,true表示位是打开的(1),false表示位是关闭的(0)SortedList排序集合类,表示键/值对的集合,这些键值对按键排序并且可以按键和索引访问5.2.35.2.65.2 C#内置集合ArrayList集合Hashtable集合Stack集合Queue集合BitArray集合SortedList集合5.2.55.2.15.2.25.2.45.2.1 ArrayList集合 ArrayList集合即动态数组,主要针对数组中的元素进行处理,上一章已经介绍过它的用法,本节不再重复。5.2.2 Hashtable集合 Hashtable是一种键/值对集合,它的数据是通过键和值来组织的。还可以被称为散列表或哈希表。 在Hashtable集合中每一个元素都是一个键/值对,而且是一一对应的关系, Hashtable集合中不能包含重复的key值,通过键(key)就可以找到相应的值(value)。如果使用Add()方法添加一个已经存在的key值,程序就会抛出异常。 下表列出了Hashtable常用的方法。key1value1key2value2key3value3key4value4方法说明Add()将指定的键和值添加到集合。方法有两个参数:第一个参数表示键,第二个参数表示值Remove()根据键(key)删除指定的元素Clear()清除集合中的所有元素ContainsKey()判断集合中是否包含特定的key值ContainsValue()判断集合中是否包含特定的Value值属性: Count获取包含在 Hashtable 中的键/值对的数目。使用Hashtable时必须引用 System.Collections命名空间。根据key键访问value值: hashTableName[key]不能通过索引值访问其中元素,所以不能通过for语句进行遍历。单个访问或遍历时,必须注意数据类型及其转换。 using System.Collections; public static void Main() { Hashtable hs = new Hashtable(); hs.Add(001, 周杰伦); hs.Add(002, 汪峰); hs.Add( 003 , 林俊杰); Console.WriteLine(hs[02]); Console.WriteLine(hs[003]); Console.WriteLine(hs[003]); hs.Remove(003); Console.WriteLine(Revome(003)以后:+hs[003]); hs.Remove(003); Console.WriteLine(Revome(\003\)以后: + hs[003]); Console.ReadLine(); } 可采用foreach语句,遍历哈希表元素。 例: foreach ( int i in table1.keys)foreach ( string s in table1.values)foreach (DictionaryEntry item in table1) public static void Main() { Hashtable hstl = new Hashtable(); hstl.Add(103, 周杰伦); hstl.Add(102, 汪峰); hstl.Add(101, 林俊杰); foreach (string s in hstl.Values) Console.Wri

文档评论(0)

1亿VIP精品文档

相关文档