How to Eliminate Duplicate User Defined Objects as a Key from Java LinkedHashMap? - GeeksforGeeks

04 Jan, 2021
Duplicate user-defined objects as a key from Java LinkedHashMap can be removed and achieved by implementing equals and hashcode methods at the user-defined objects.
Example:
Input : LinkedHashMap = [{[Apple, 40], Kashmir}, {[Grapes, 80], Nashik}]
    Duplicate key = {[Grapes, 80], Delhi}
Output: LinkedHashMap = [{[Apple, 40], Kashmir}, {[Grapes, 80], Delhi}]
Syntax:
equals() Method:
public boolean equals  (Object obj)

// This method checks if some other Object
// passed to it as an argument is equal to 
// the Object on which it is invoked.
hashCode() Method:
public int hashCode()

// This method returns the hash code value 
// for the object on which this method is invoked.
Below is the implementation of the problem statement:
Java
// Java Program to eliminate duplicate user defined// objects as a key from Java LinkedHashMapimport java.util.*;class Employee {    private String name;    private int id;    // Constructor    public Employee(String name, int id)    {        this.name = name;        this.id = id;    }      // HashCode Method    public int hashCode()    {        System.out.println("In hashcode method");        int hashcode = 0;        return hashcode;    }      // Equals Method    public boolean equals(Object obj)    {        System.out.println("In equals method");        if (obj instanceof Employee) {            Employee emp = (Employee)obj;            return (emp.name.equals(this.name)                    && emp.id == this.id);        }        else {            return false;        }    }      // Getters and Setters    public String getName() { return name; }    public void setName(String name) { this.name = name; }    public int getId() { return id; }    public void setId(int id) { this.id = id; }    public String toString()    {        return "Employee Id: " + id + "  Name: " + name;    }}  // Driver codepublic class Duplicate_Value {    public static void main(String a[])    {          // LinkedHashMap initialization        LinkedHashMap<Employee, Integer> lhm            = new LinkedHashMap<Employee, Integer>();          // Adding entries in LinkedHashMap        lhm.put(new Employee("John", 1020), 1);        lhm.put(new Employee("Ravi", 1040), 2);        lhm.put(new Employee("Jaya", 1030), 3);          // Print LinkedHashMap        for (Map.Entry<Employee, Integer> entry :             lhm.entrySet()) {            System.out.println(entry.getKey() + "=>"                               + entry.getValue());        }          // Create duplicate entry        Employee duplicate = new Employee("John", 1020);        System.out.println("Inserting duplicate record...");        // Add duplicate entry        lhm.put(duplicate, 4);          System.out.println("After insertion:");        for (Map.Entry<Employee, Integer> entry :             lhm.entrySet()) {            System.out.println(entry.getKey() + "=>"                               + entry.getValue());        }    }}
In hashcode method
In hashcode method
In equals method
In hashcode method
In equals method
Employee Id: 1020  Name: John
Inserting duplicate record...
In hashcode method
In equals method
After insertion:
Employee Id: 1020  Name: John
Time Complexity: O(1)
Java-LinkedHashMap
Picked
Technical Scripter 2020
Java
Java Programs
Technical Scripter
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Functional Interfaces in Java
Stream In Java
Constructors in Java
Different ways of Reading a text file in Java
Exceptions in Java
Convert a String to Character array in Java
Java Programming Examples
Convert Double to Integer in Java
Implementing a Linked List in Java using Class
How to Iterate HashMap in Java?