发布时间:2025-03-15 21:26:21 点击量:
HASH GAME - Online Skill Game GET 300
hashCode() 办法返回的就是一个数值,从办法的名称上就能够看出,其目标是生成一个 hash 码。hash 码的主要用途就是在对对象进行散列的时候作为 key 输出,据此很容易推断出,咱们须要每个对象的 hash 码尽可能不同,这样能力保障散列的存取性能。事实上,Object 类提供的默认实现的确保障每个对象的 hash 码不同(在对象的内存地址根底上通过特定算法返回一个 hash 码)。Java 采纳了哈希表的原理。哈希(Hash)实际上是集体名,因为他提出一哈希算法的概念,所以就以他的名字命名了。哈希算法也称为散列算法,是将数据依特定算法间接指定到一个地址上。初学者能够这样了解,hashCode 办法实际上返回的就是对象存储的物理地址(理论可能并不是)。
标准 1:若重写 equals(Object obj) 办法,有必要重写 hashcode() 办法,确保通过 equals(Object obj) 办法判断后果为 true 的两个对象具备相等的 hashcode() 返回值。说得简略点就是:“如果两个对象雷同,那么他们的 hashcode 应该相等”。不过请留神:这个只是标准,如果你非要写一个类让 equals(Object obj) 返回 true 而 hashcode() 返回两个不相等的值,编译和运行都是不会报错的。不过这样违反了 Java 标准,程序也就埋下了 BUG。