Java equals() and hashCode() Methods Explained

Day 2/100 – Java Practice Challenge 🚀 Continuing my #100DaysOfCode journey with an important core Java concept. 🔹 Topics Covered: Object Class Methods – equals() & hashCode() Understanding how Java compares objects and how collections like HashSet handle duplicates. 💻 Practice Code: 🔸 Comparing two different objects class Employee { int id; Employee(int id){ this.id = id; } @Override public boolean equals(Object obj){ if(this == obj) return true; if(obj == null || getClass() != obj.getClass()) return false; Employee e = (Employee) obj; return this.id == e.id; } @Override public int hashCode(){ return id; } } 🔸 Testing with HashSet Employee e1 = new Employee(1); Employee e2 = new Employee(1); HashSet<Employee> set = new HashSet<>(); set.add(e1); set.add(e2); System.out.println(set.size()); // Output: 1 📌 Key Learning: Two objects can have different memory addresses but still be logically equal equals() → used to compare object values (business logic) hashCode() → used to find bucket location in hashing collections 👉 If two objects are equal, their hashCode must be the same ⚠️ Important: Overriding equals() without hashCode() can break HashSet/HashMap behavior 🔥 Interview Insight: == compares memory address equals() compares logical content #100DaysOfCode #Java #JavaDeveloper #CodingJourney #LearningInPublic #Programming

To view or add a comment, sign in

Explore content categories