當前位置:成語大全網 - 書法字典 - 字典生成哈希表

字典生成哈希表

這是妳理解上的錯誤。hashtable是壹個哈希表,它的鍵只起到快速索引的作用。為什麽要定義壹個新類?

如果妳想用hastable來存儲妳的新類,那麽妳有兩個方案。

先用key類中的唯壹值來區分,也就是所謂的hashtable.add(key.key,key);該方案可以使用鍵的某壹列的屬性值作為唯壹索引。可以很好地使用hashtable,而不是直接使用key作為索引。壹起使用的對象可以包含在對象的屬性中。

第二,上述方案的替代方案是自己構造對象,繼承hashtable的接口。原來hashtable繼承了以下接口:

IDictionary,ICollection,IEnumerable,ISerializable,IDeserializationCallback,ICloneable,

根據您的需要,您可以創建壹個繼承這些接口的類,或者只繼承其中的壹部分。比如程序中不需要使用copy函數,就不需要ICloneable接口,也不需要序列化,就不需要實現ISerializable接口。壹般來說,妳只需要繼承前兩個接口。這相當於使用了壹個自建的hashtable——實際上hashtable實現的IDictionary是Hashtable的本質特性。然後妳可以重寫ContainsKey方法,妳可以生成妳想要實現什麽樣的函數。這種情況就是自助,豐衣足食。

最後壹點是,為什麽不用妳的定制作為價值?為什麽壹定要做鑰匙?如果做value,可以考慮用ContainsValue的方法來實現。是為了效率嗎?

如果非要做類鍵,妳的類可以序列化嗎?如果沒有實現序列化接口,自定義類作為鍵就沒有意義。就算很兇,又有什麽效果?還是老老實實常規使用吧。