search
HomeJavaJavaBaseWhat is the difference between hashcode and equals?

What is the difference between hashcode and equals?

Jul 03, 2020 am 11:59 AM
equalshashcode

The difference between hashcode and equals is: 1. If two objects equals returns true, then hashCode must also return the same int number; 2. If two objects hashCode returns the same int number, then equals does not necessarily Return true.

What is the difference between hashcode and equals?

hashcode: an integer representation of the initial address of the object

Objects in Java are managed by the JVM, and the JVM will manage it when it deems appropriate Moving objects, for example, GC that occurs under certain GC algorithms that need to defragment memory. At this time, the address of the object will change, but the hashcode will not change.​

hashCode is to improve the efficiency of searching in hash structure storage and has no effect in linear tables.

  1. Generally, if an object of a class will be stored in a hash storage structure such as HashTable, HashSet, HashMap, etc., then it is best to rewrite hashCode after rewriting equals, otherwise it will cause data to be stored Non-uniqueness (two equals data are stored). If it is determined that it will not be stored in these hash structures, you do not need to rewrite the hashCode.

  2. If two objects equals returns true, hashCode must also return the same int number.

  3. If two objects equals returns false, hashCode does not necessarily return different int numbers, but generating different hashCode values ​​for unequal objects can improve the performance of the hash table.

  4. If the hashCode of two objects returns the same int number, equals does not necessarily return true.

  5. If the hashCode of two objects returns different int numbers, equals must return false.

  6. If the same object is already stored in the collection during execution, the relevant information that affects the hashCode value cannot be modified, otherwise it will cause memory leaks.

  7. Generally speaking, when comparing sizes between objects, you need to override the equals method.

Recommended tutorial: "java tutorial"

The above is the detailed content of What is the difference between hashcode and equals?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft