黑马程序员技术交流社区

标题: 如何对HashTable的值进行排序? [打印本页]

作者: laoyang    时间: 2011-11-14 15:39
标题: 如何对HashTable的值进行排序?
如何对HashTable的值进行排序?
作者: 王维波    时间: 2011-11-14 16:27
对哈希表进行排序在这里的定义是对key/键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
  ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
  akeys.Sort(); //按字母顺序进行排序
  foreach(string skey in akeys)
  {
  Console.Write(skey+ ":");
  Console.WriteLine(ht[skey]);//排序后输出
  }
作者: laoyang    时间: 2011-11-14 16:44
保持常态0616 发表于 2011-11-14 16:27
对哈希表进行排序在这里的定义是对key/键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的 ...

:'(我想对值进行排序,这个值有可能会重复的哦
作者: zhanghua    时间: 2011-11-14 17:06
对值进行排序,是可以的。Hashtable里的值是对象,
我们可以直接对基本数据类型进行排序,但是并不能对对象排序。
这里sun就规定:对象如果需要被排序,就要实现hashCode()方法,和equals()方法,对 对象的基本属于操作就可以了。

你想对Hashtable的值排序,你可能手动实现排序算法了吧。sun没有提供此类方法,你可以采用TreeMap,底层采层红黑树进行排序。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2