仔细看看Thinking in Java

解决方案 »

  1.   

    有默认的hash函数,是hashCode(),对每个Key产生一个不重复的值(使用对象的地址),你可以重写。可以测试
    class A{}
    ...
    A a = new A();
    A b = new A();
    System.out.println("a=", a.hashCode());
    System.out.println("b=", b.hashCode());
      

  2.   

    object 类(所有类的基类,应该知道的,哦)
    里面有个hashcode()函数,一般类会继承或者重写这个函数
    hashmap 继承hashtable 重写
    不见得你自己要写一个,但是创建hash表一定要有这么个函数。(不然怎么叫哈希表,对不?)
    以hashtable为例。用户给出键值和存储值,但hashtable不会直接用这个键值。他会使用hashcode(key),计算得到key的散列值,作为键值放入hash表中。至于jdk中hash函数的算法,刚开始用,不用研究这么深吧。呵呵,偶也不知道
      

  3.   

    hash函数的算法不是容易理解的东西,而且有的就理解不了。会用就够了
      

  4.   

    老大,那人说的是数据结构中的哈希表,不是java中的类。活见鬼,怎么有人这么问?