C#数组和集合专题5(Hashtable排序和遍历)
2012-06-29 09:49
274 查看
②.Hashtable排序
Hashtable没有提供排序的方法,不能直接实现对象的排序。但ArrayList类有排序的方法,可以把所有的键对象存放到ArrayList中,排序完成后再从中取出每一个键对象并输出对应的员工对象。
Hashtable中的Keys属性的作用是获取包含 Hashtable 中的键的 ICollection。
ICollection 接口是 System.Collections 命名空间中类的基接口。
ICollection 接口扩展 Ienumerable、IDictionary和IList 则是扩展 ICollection 的更为专用的接口。IDictionary 实现是键/值对的集合,如 Hashtable 类。IList 实现是值的集合,其成员可通过索引访问,如 ArrayList 类。
在上面的main方法中加入,就可以完成对Hashtable对象的排序。
//把ht的键对象全部复制到ArrayList中
ArrayList al = newArrayList(ht.Keys);
/*ht.Keys返回ht中所有键对象构成的集合,把该集合传递给ArrayList构造方法则得到一个包
*所有键对象的动态数组
*/
al.Sort();//从小到大排列
//排序完成输出
for (int i = 0; i < al.Count;i++ )
{
object e=al[i];
Employee temp = (Employee)ht[e];//键作为索引器来获得对应的值对象
Console.WriteLine(temp);
}
我自己想了一种方法,顺序输出也达到了上面排序相同的效果,此方法只是针对键是int,如下:
for (int i = 1; i <= ht.Count; i++)
{
Console.WriteLine(ht[i]);//i是object类型的key,不是索引
}
③.遍历Hashtable
还是借用上面Employee的例子,在main中输入下面的循环,其中DictionaryEntry结构是定义可以设置或检索的字典键值对
foreach(DictionaryEntry entry in ht)
{
object k = entry.Key;
object v = entry.Value;
Console.WriteLine("键:{0},值:{1}",k,v);
}
Hashtable没有提供排序的方法,不能直接实现对象的排序。但ArrayList类有排序的方法,可以把所有的键对象存放到ArrayList中,排序完成后再从中取出每一个键对象并输出对应的员工对象。
Hashtable中的Keys属性的作用是获取包含 Hashtable 中的键的 ICollection。
ICollection 接口是 System.Collections 命名空间中类的基接口。
ICollection 接口扩展 Ienumerable、IDictionary和IList 则是扩展 ICollection 的更为专用的接口。IDictionary 实现是键/值对的集合,如 Hashtable 类。IList 实现是值的集合,其成员可通过索引访问,如 ArrayList 类。
在上面的main方法中加入,就可以完成对Hashtable对象的排序。
//把ht的键对象全部复制到ArrayList中
ArrayList al = newArrayList(ht.Keys);
/*ht.Keys返回ht中所有键对象构成的集合,把该集合传递给ArrayList构造方法则得到一个包
*所有键对象的动态数组
*/
al.Sort();//从小到大排列
//排序完成输出
for (int i = 0; i < al.Count;i++ )
{
object e=al[i];
Employee temp = (Employee)ht[e];//键作为索引器来获得对应的值对象
Console.WriteLine(temp);
}
我自己想了一种方法,顺序输出也达到了上面排序相同的效果,此方法只是针对键是int,如下:
for (int i = 1; i <= ht.Count; i++)
{
Console.WriteLine(ht[i]);//i是object类型的key,不是索引
}
③.遍历Hashtable
还是借用上面Employee的例子,在main中输入下面的循环,其中DictionaryEntry结构是定义可以设置或检索的字典键值对
foreach(DictionaryEntry entry in ht)
{
object k = entry.Key;
object v = entry.Value;
Console.WriteLine("键:{0},值:{1}",k,v);
}
相关文章推荐
- C#数组和集合专题4(Hashtable类)
- ❀自我唠嗑OC-集合遍历和数组排序
- 集合遍历和数组排序
- #Objective - C - sixth-Day 数组排序及集合遍历
- iOS之OC集合遍历和数组排序
- iOSDay16之OC集合遍历和数组排序
- OC学习第五天_字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- day5: 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- 6.集合遍历和数组排序
- swift字符串,数组,字典和集合的遍历
- jQuery遍历对象/数组/集合
- C#常见的几种集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍历方法对比
- Objective-C学习笔记_字典、集合、数组排序
- jquery遍历对象、数组、集合
- JavaScript在IE与FireFox中遍历集合(数组)的语法
- 多种形式遍历(迭代)集合或数组
- 【C#】数组与集合(LIst、ArrayList、HashTable、Dictionary)
- Java遍历集合、数组的四种方法
- C#数组和集合专题3(ArrayList类)
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序