| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:Hashtable如何使用Values对Key进行排序?
只看楼主 加入收藏
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
结帖率:86.96%
收藏
已结贴  问题点数:40 回复次数:3 
Hashtable如何使用Values对Key进行排序?
如题:
HashTable ht=new HashTable();
ht.Add("ten",10);
ht.Add("senver",7);
ht.Add("nine",9);
ht.Add("two",2);
ht.Add("six",6);
ht.Add("one",1);
我对后面的Values进行了排序(从大到小),现在想将Key按Values的排序输出,求思路,谢谢.
搜索更多相关主题的帖子: 如何 Values one 
2011-08-11 17:01
heliyi
Rank: 4
来 自:安徽省黄册市
等 级:业余侠客
帖 子:44
专家分:260
注 册:2011-7-29
收藏
得分:40 
可以先按值排序并写入list中,再写回hashtable
List<string> htkey=new List<string>();
List<int> htval=new List<int>();
foreach(string key in ht.keys)
{
   int val=(int)ht[key];
   int length=htval.count;
   if(length==0)
   {
      htkey.add(key);
      htval.add(val);
      continue;
   }
   for(int pos=0;pos<length;pos++)
   {
      if(htval[pos]<=val)
      {
            htval.insert(pos,val);
            htkey.insert(pos,key);
            break;
      }
   }
}
ht.clear();
for(int len=0;len<htval.count;len++)
{
   ht.add(htkey[len],htval[len]);
}
如果集合较大,则可采用较多成熟的排序算法以提高排序效率。[程序未经测试]
2011-08-12 01:17
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
收藏
得分:0 
回复 2楼 heliyi
找到一个简单的方法...
http://hi.baidu.com/ivy21/blog/item/b36be7d3be5673cda8ec9a24.html
2011-08-13 01:20
heliyi
Rank: 4
来 自:安徽省黄册市
等 级:业余侠客
帖 子:44
专家分:260
注 册:2011-7-29
收藏
得分:0 
呵呵祝你成功!
hashtable是对对象进行操作的。
我个人觉得用词典实现键值操作更方便
2011-08-13 23:42
快速回复:Hashtable如何使用Values对Key进行排序?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved