日期:2014-05-19  浏览次数:21118 次

HashTable 能够不排序吗﹖
HT   为   HashTable

我使用   HT.Add(Key,   Value)   来添加值对,
当我把它取出来时,
发现Key自动排序了。

能够不让它排序吗﹖
我希望保持原本   Add   的顺序。

如果   HashTable   一定会排序,
那么我不要排序的话得改用哪个组件﹖

------解决方案--------------------
哈希表内部按照Hashcode来排序的。我们无法让哈希表排序,可以借ArrayList来用。
ArrayList arr = new ArrayList(hash.Keys);
arr.Sort();

------解决方案--------------------
因为Hashtable用了hash算法,所以表里的数据顺序是不定的,最好不要用它来解决这样的问题
建议用数组
------解决方案--------------------
arraylist
hashtable
sortedlist

这3个集合对象,功能依次增强,系统开销也依次增大。hashtable 应该是不支持排序的,他有个唯一键值也是为了提高查询速度。

arraylist 是不是合适你用?
------解决方案--------------------
.NET 2.0 以上版本,HashTable 已过时,改用 Dictionary 泛型,如果需要排序可用 SortedDictionary 泛型...
------解决方案--------------------
对你要保证按你的Add顺序,你最好换用ArrayList,或用List <T> .
------解决方案--------------------
构造一个Key-Value结构用List <> 存