相关疑难解决方法(0)

如何确保hashCode()与equals()一致?

当覆盖java.lang.Object的equals()函数时,javadocs建议,

通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等的对象必须具有相等的哈希代码.

hashCode()方法必须为每个对象返回一个唯一的整数(这在基于内存位置比较对象时很容易,只需返回对象的唯一整数地址)

应该如何覆盖hashCode()方法,以便它仅基于该对象的特性为每个对象返回一个唯一的整数


public class People{
   public String name;
   public int age;

   public int hashCode(){
      // How to get a unique integer based on name and age?
   }
}
/*******************************/
public class App{
   public static void main( String args[] ){
       People mike = new People();
       People melissa = new People();
       mike.name = "mike";
       mike.age = 23;
       melissa.name = "melissa";
       melissa.age = 24;
       System.out.println( mike.hasCode() );  // output?
       System.out.println( melissa.hashCode(); // output?
   }
}
Run Code Online (Sandbox Code Playgroud)

java equals object hashcode

23
推荐指数
3
解决办法
7073
查看次数

为什么具有相同哈希码的对象不相等

我在书中发现了这句话:

如果两个对象的哈希码是等于的,那么这可能并不意味着对象是等于的.

有人可以解释一下这句话吗?

java

0
推荐指数
3
解决办法
198
查看次数

标签 统计

java ×2

equals ×1

hashcode ×1

object ×1