Eliminate duplicate keys user defined objects with Hashtable

Example:

package com.w3spoint;
 
import java.util.Hashtable;
import java.util.Set;
 
class Employee{    
    private String name;
    private int salary;
    private int id;
 
    public Employee(int id, String name, int salary){
    	this.id = id;
        this.name = name;
        this.salary = salary;
    }
 
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        this.salary = salary;
    }
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String toString(){
        return "Id: "+this.id+", Name: "+this.name+", Salary: "+this.salary;
    }
 
	@Override
	public int hashCode() {
	    System.out.println("In hashcode method");
	    return this.getId();
	}
 
	@Override
	public boolean equals(Object obj) {
		Employee e = null;
	    if(obj instanceof Employee){
	        e = (Employee) obj;
	    }
	    System.out.println("In equals method");
	    if(this.getId() == e.getId()){
	        return true;
	    } else {
	        return false;
	    }  
	}
}
 
public class Test {
  public static void main(String args[]){
	Hashtable<Employee,String> hashtable = new Hashtable<Employee, String>();
	hashtable.put(new Employee(1,"Jai",50000), "JAI");
	hashtable.put(new Employee(2,"Mahesh",80000), "MAHESH");
	hashtable.put(new Employee(3,"Vishal",60000), "VISHAL");
	hashtable.put(new Employee(4,"Hemant",64000), "HEMANT");
	System.out.println("Adding duplicate entry.");
	hashtable.put(new Employee(3,"Vishal",60000), "VISHAL");
	Set<Employee> keys = hashtable.keySet();
        for(Employee key:keys){
            System.out.println(key+" - "+hashtable.get(key));
        }
        System.out.println("Duplicate removed.");
  }
}

Output

In hashcode method
In hashcode method
In hashcode method
In hashcode method
Adding duplicate entry.
In hashcode method
In equals method
In hashcode method
In equals method
Id: 4, Name: Hemant, Salary: 64000 - HEMANT
In hashcode method
In equals method
Id: 3, Name: Vishal, Salary: 60000 - VISHAL
In hashcode method
In equals method
Id: 2, Name: Mahesh, Salary: 80000 - MAHESH
In hashcode method
In equals method
Id: 1, Name: Jai, Salary: 50000 - JAI
Duplicate removed.
Please follow and like us:
Content Protection by DMCA.com