在C#中hashtable一般是这样用的:
hashtable t=new hashtable();
t.add(key,value);
但我看哈希表的理论中,key的值是通过value或value的摘要使用一种哈希算法计算出来的,
而在程序中直接这样指定了key的值是怎么回事呢?

解决方案 »

  1.   

    这里key不是value的hash。key和value形成一对,并存放到hashtable的某个位置。
    这个位置是根据key的hash来计算出来的。
      

  2.   

    key和value均为object类型,可以像这样t.Add("A","a"),A可用来进行快速查找。
    这里放的时字符串,对其余其他类型的我还没试过,不知道以其他类型做为key时,为咋样,呵呵
      

  3.   

    二楼的意思是不是说在C#的hashtable在hashtable理论的基础上加了一个key值,而hash值并不是由C#中的value计算出来的,而是由key的值计算出来的。也就是说,新增的key值存在意义是代替value来计算hash值
      

  4.   

    二楼的意思是不是说在C#的hashtable在hashtable理论的基础上加了一个key值,而hash值并不是由C#中的value计算出来的,而是由key的值计算出来的。也就是说,新增的key值存在意义是代替value来计算hash值
      

  5.   

    key 是object的不只是string,可以作为快速查找的值
      

  6.   

    key必须是唯一的 调用起来指定key就能得到value了
      

  7.   

    t.add(key,value); 这里的value可以通过C#提供的Hash算法通过key算出来,你不用自己提供hash算法,它帮你搞定hash算法的部分。
      

  8.   

    不对呀,要是这样的话每个value和key不可能使用一种hash算法就能算出来