本帖最后由 张忠豹 于 2012-8-18 21:46 编辑
public class TestYunSuanFu {
public static void main(String args[]){
//输出这条语句,你会发现,他们的hascode是一样的,但是,它们的值完全不一样
System.out.println("Aa".hashCode());
System.out.println("BB".hashCode());
}
}
public class TestYunSuanFu {
public static void main(String args[]){
//输出这条语句,你会发现,他们的hascode是一样的,但是,它们的值完全不一样
System.out.println("Aa".hashCode());
System.out.println("BB".hashCode());
}
}
两个对象相等,hashCode一定相等,equals不一定相等,反之不成立
毕老师教程视频中已经说了,如果相等就在原地址的位置顺延一个位置保存,这个位置据个人估计应该是链式的,因为当你看到张老师的基础加强视频以后你会明白,哈希表存储的底层数据结构是在内存中根据哈希表的值分成不同的段,这个是线式的,当有一个新元素进来时,会根据它的哈希值在内存中取哈希表分区的模,然后根据结果区域比较区域内的各个元素的哈希值,如果相等,就用毕老师在课上说的方法,在内存中顺延一个位置保存,但是这两个位置的哈希值都是一样的~~ |