{"id":21291,"date":"2024-03-15T21:49:39","date_gmt":"2024-03-15T21:49:39","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/"},"modified":"2024-03-21T20:08:05","modified_gmt":"2024-03-21T20:08:05","slug":"how-to-correctly-use-equals-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/","title":{"rendered":"How to correctly use &#8220;equals&#8221; in Java?"},"content":{"rendered":"<p>In Java, the equals() method is used to compare whether two objects are equal. The key to correctly using the equals() method is to understand its implementation principle and usage scenarios.<\/p>\n<ol>\n<li>Rewrite the equals() method: By default, the equals() method compares the object&#8217;s reference rather than its content. Therefore, if you want to compare the content of objects, it is necessary to override the equals() method in the custom class and perform comparisons based on your own requirements.<\/li>\n<\/ol>\n<p>For example, if there is a Person class and we need to compare the name and age attributes of two Person objects to see if they are equal, we can rewrite the equals() method as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Override<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">boolean<\/span> <span class=\"hljs-title function_\">equals<\/span><span class=\"hljs-params\">(Object obj)<\/span> {\r\n    <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-built_in\">this<\/span> == obj) {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">true<\/span>;\r\n    }\r\n    <span class=\"hljs-keyword\">if<\/span> (obj == <span class=\"hljs-literal\">null<\/span> || getClass() != obj.getClass()) {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">false<\/span>;\r\n    }\r\n    <span class=\"hljs-type\">Person<\/span> <span class=\"hljs-variable\">person<\/span> <span class=\"hljs-operator\">=<\/span> (Person) obj;\r\n    <span class=\"hljs-keyword\">return<\/span> Objects.equals(name, person.name) &amp;&amp; Objects.equals(age, person.age);\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Check for null and type: In the equals() method, it is necessary to first check if the passed object is null and if the types match. If the passed object is null, or the types do not match, return false immediately.<\/li>\n<li>When comparing object properties, it is recommended to use the Objects.equals() method instead of using &#8220;==&#8221; or equals() method, as Objects.equals() method automatically handles null values.<\/li>\n<\/ol>\n<p>For example, the rewritten equals() method above uses the Objects.equals() method to compare the name and age properties.<\/p>\n<ol>\n<li>When overriding the equals() method, it is also necessary to override the hashCode() method in order to ensure the correctness when using hash-based data structures such as HashMap and HashSet.<\/li>\n<\/ol>\n<p>In summary, the key to correctly using the equals() method is to compare objects based on their content, not just their references. When overriding the equals() method, it&#8217;s important to consider cases where the passed object is null or if the types match, and to compare object attributes using Objects.equals() method.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, the equals() method is used to compare whether two objects are equal. The key to correctly using the equals() method is to understand its implementation principle and usage scenarios. Rewrite the equals() method: By default, the equals() method compares the object&#8217;s reference rather than its content. Therefore, if you want to compare the [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-21291","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to correctly use &quot;equals&quot; in Java? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to correctly use &quot;equals&quot; in Java?\" \/>\n<meta property=\"og:description\" content=\"In Java, the equals() method is used to compare whether two objects are equal. The key to correctly using the equals() method is to understand its implementation principle and usage scenarios. Rewrite the equals() method: By default, the equals() method compares the object&#8217;s reference rather than its content. Therefore, if you want to compare the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T21:49:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T20:08:05+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emily Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"How to correctly use &#8220;equals&#8221; in Java?\",\"datePublished\":\"2024-03-15T21:49:39+00:00\",\"dateModified\":\"2024-03-21T20:08:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\"},\"wordCount\":292,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\",\"name\":\"How to correctly use \\\"equals\\\" in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T21:49:39+00:00\",\"dateModified\":\"2024-03-21T20:08:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to correctly use &#8220;equals&#8221; in Java?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to correctly use \"equals\" in Java? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to correctly use \"equals\" in Java?","og_description":"In Java, the equals() method is used to compare whether two objects are equal. The key to correctly using the equals() method is to understand its implementation principle and usage scenarios. Rewrite the equals() method: By default, the equals() method compares the object&#8217;s reference rather than its content. Therefore, if you want to compare the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T21:49:39+00:00","article_modified_time":"2024-03-21T20:08:05+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"How to correctly use &#8220;equals&#8221; in Java?","datePublished":"2024-03-15T21:49:39+00:00","dateModified":"2024-03-21T20:08:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/"},"wordCount":292,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/","name":"How to correctly use \"equals\" in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T21:49:39+00:00","dateModified":"2024-03-21T20:08:05+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-correctly-use-equals-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to correctly use &#8220;equals&#8221; in Java?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=21291"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21291\/revisions"}],"predecessor-version":[{"id":55145,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21291\/revisions\/55145"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}