Example:
package com.w3schools;
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.");
}
} |
package com.w3schools;
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. |
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.