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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laoyang 黑马帝   /  2011-11-14 15:39  /  5397 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何对HashTable的值进行排序?

3 个回复

倒序浏览
对哈希表进行排序在这里的定义是对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]);//排序后输出
  }
回复 使用道具 举报
保持常态0616 发表于 2011-11-14 16:27
对哈希表进行排序在这里的定义是对key/键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的 ...

:'(我想对值进行排序,这个值有可能会重复的哦
回复 使用道具 举报
对值进行排序,是可以的。Hashtable里的值是对象,
我们可以直接对基本数据类型进行排序,但是并不能对对象排序。
这里sun就规定:对象如果需要被排序,就要实现hashCode()方法,和equals()方法,对 对象的基本属于操作就可以了。

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

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 不错的方法。

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马