黑马程序员技术交流社区
标题: 求教 hashtable 输出排序问题 [打印本页]
作者: 思·长安 时间: 2013-10-25 22:36
标题: 求教 hashtable 输出排序问题
本帖最后由 思·长安 于 2013-10-26 09:20 编辑
hashtable集合中保存的数据 用foreach 循环输出后
数据是什么样的排序原理 为什么与添加时候的顺序不一样呢 有没有办法按指定方式进行排序啊
作者: 吴彤辉 时间: 2013-10-25 22:43
因为hashtable内部是无序的,所以输出不一定,hashtable取数据的机制没搞明白。按照下面代码可以实现先进先出。
可以通过控制ArrayList里面keys的排序来控制hashtable的输出,当然也可以用SortedDictionary和SortedList实现排序集合。- public class NoSortHashtable : Hashtable
- {
- private ArrayList keys = new ArrayList();
- public NoSortHashtable()
- {
- }
-
- public override void Add(object key, object value)
- {
- base.Add (key, value);
- keys.Add (key);
- }
- public override ICollection Keys
- {
- get
- {
- return keys;
- }
- }
- public override void Clear()
- {
- base.Clear ();
- keys.Clear ();
- }
- public override void Remove(object key)
- {
- base.Remove (key);
- keys.Remove (key);
- }
- public override IDictionaryEnumerator GetEnumerator()
- {
- return base.GetEnumerator ();
- }
- }
复制代码
作者: 思·长安 时间: 2013-10-25 22:59
如果想排序输出的话只能用泛型吗
作者: 吴彤辉 时间: 2013-10-25 23:01
用泛型最方便的了
作者: 思·长安 时间: 2013-10-26 09:19
用Dictionary搞定了 谢谢你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |