如果HashMap或者hashTable的key是一个自定义的类该怎么办

需要重写hashCode()和equals()方法,才能保证存入键的唯一性

为什么重写equals还要重写hashCode?

在object根类的源码中,equals方法本质上就是==,==表示比较两个基本类型的数据或者两个引用变量的地址值是否相等,在实际开发中,我们需要知道引用类型变量的内容是否相等,这时需要在类中重写equals方法,像jdk的类一般都重写了equals方法,如果是自定义的类,需要自己重写.重写equals方法时一般都要重写hashCode方法,如果不重写hashCode方法,hashSet就不能保证存入值的唯一性,hashMap和hashTable就不能保证存入键的唯一性.

你可能感兴趣的:(javase笔记)