如果你向类似Hashtable|HashMap..容器内放置对象,那么他们内部要调用
你加入对象的hashcode()方法,真正的key是由hashcode决定的,每个对象
的hashcode是不一样的。当然你可以重写hashcode()让它返回同一个值,
例:
class MyKey {
    String name;
    MyCls(String arg) {
        name = arg;
    }
    public int hashCode() {
        return 5;
    }
}现在要利用MyKey作为HashMap的Key:
HashMap map = new HashMap();
map.put(new MyKey("key1"), "aaa");
map.put(new MyKey("key2"), "bbb");你应该认为map内部有两个key-value对,可实际上只有一个[key2, bbb]
因为不论你怎么构造MyKey的对象,这些对象的hashcode()返回的值都是
固定的,对于HashMap这类容器来说,这些对象都是一样的。
对于需要加入类似HashMap这类容器的自定义类,最好重写hashcode()方法
具体怎样生成一个比较好的hashcode,《java高效编程》上介绍的比较详细
不过偶忘记了,呵呵