A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© O_o” 中级黑马   /  2013-8-9 23:26  /  1307 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我觉得这些对于我们初学者有点迷惑,不知道什么时候该用哪个,应该多加练习这些。欢迎高手在下面补充这些方法怎么才能更好记。

ArrayList的方法
如果要向集合中添加单个的元素 ,使用Add()方法,如果要添加集合,使用AddRange()方法。
、为什么ArrayList集合可以做到长度自由伸缩?
其中这个集合的两个属性需要注意:
Capacity:这个集合可包含的元素的个数
Count:这个元素中实际包含的元素的个数。
当咱们向这个集合中添加的元素的个数超过了这个集合可包含的元素的个数的时候,
这个集合立刻向内存中在申请开辟比原来多一倍的空间。


List<T>泛型集合   添加数据、删除数据Remove、

字典集合:Dictionary<T,T>     它的两种添加数据的方式  以及使用foreach循环进行变脸   键值对的遍历   KeyValuePair<T,T>
Dictionary<char, int> dic = new Dictionary<char, int>();

Hashtable ht = new Hashtable();
ht.(key,value);

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

5 个回复

倒序浏览
哈希表简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.
哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //创建一个Hashtable实例
ht.Add("E","e");//添加key/value键值对
ht.Add("A","a");
ht.Add("C","c");
ht.Add("B","b");
string s=(string)ht["A"];
if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/value键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
}
}
遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}
对哈希表进行排序
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
for(string skey in akeys)
{
Console.Write(skey + ":");
Console.WriteLine(ht[skey]);//排序后输出
}

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
arraylist 和hashtable 添加的都是object类型的对象,而list 和dictionary就是前面2个对应过来的但是添加的不是object类型必须要声明类型,避免装箱拆箱,减少程序耗用资源
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马