2 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個贊
產(chǎn)生這個結(jié)果的原因大家都知道,Hashtable內(nèi)部的排序機(jī)制使然.我們可以用ArrayList重寫Hashtable.因?yàn)锳rrayList是不會排序的。代碼如下: namespace NoSortHashtable { 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 (); } } }

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊
Hashtable 確實(shí)不能排序,你每次取的時(shí)候,里面的元素順序都是不同的。 你可以創(chuàng)建Hashtable 的時(shí)候,同時(shí)創(chuàng)建一個數(shù)組或者一個列表ArrayList,List來存放Hashtable 里的key.每次取的時(shí)候先從數(shù)組或者列表中取出key值,然后從Hashtable 中取出相應(yīng)的value值。 還需要我寫出代碼么?
- 2 回答
- 0 關(guān)注
- 657 瀏覽
添加回答
舉報(bào)