历史上有没有九环公主:哈希表奇怪问题!!!?
来源:百度文库 编辑:高校问答 时间:2024/10/04 18:46:40
创建了一个哈希表 public Hashtable hashtable=new Hashtable();
再创建一个自定义对像 public Reply reply=new Reply();
把对像序列化 byte[] temp=reply.Serialize();
从已序列化的字节数组中获得MD5哈希码 MD5 md5 = new MD5CryptoServiceProvider();
byte[] hashCode=md5.ComputeHash(temp);
以获得的哈希码为键把reply加入哈希表 hashtable.Add(hashCode,reply);
把存放哈希码的字节数组拷给另一个字节数组 byte[] tempCode=new byt[hashCode.Length];
for(int i=0;i<hashCode.Length;i++)
{tempCode[i]=hashCode[i];}
用新的这个字节数组来检索哈希表时出错: MessageBox.Show(hashtable[tempCode].GetType().ToString());
如果用原来那个字节数组来检索就可以: MessageBox.Show(hashtable[hashCode].GetType().ToString());
请问是为什么?键的对像必须是同一个对像吗?
如果是那哈希表的功能太受局限了吧?
如果不是那又是为什么?
再创建一个自定义对像 public Reply reply=new Reply();
把对像序列化 byte[] temp=reply.Serialize();
从已序列化的字节数组中获得MD5哈希码 MD5 md5 = new MD5CryptoServiceProvider();
byte[] hashCode=md5.ComputeHash(temp);
以获得的哈希码为键把reply加入哈希表 hashtable.Add(hashCode,reply);
把存放哈希码的字节数组拷给另一个字节数组 byte[] tempCode=new byt[hashCode.Length];
for(int i=0;i<hashCode.Length;i++)
{tempCode[i]=hashCode[i];}
用新的这个字节数组来检索哈希表时出错: MessageBox.Show(hashtable[tempCode].GetType().ToString());
如果用原来那个字节数组来检索就可以: MessageBox.Show(hashtable[hashCode].GetType().ToString());
请问是为什么?键的对像必须是同一个对像吗?
如果是那哈希表的功能太受局限了吧?
如果不是那又是为什么?