CodesJava

Easy learning with example program codes

how to eliminate duplicate user defined objects as a key from hashmap?


HashMap

HashMap extends AbstractMap class and implements the Map interface. It contains the elements in key-value pair form. It not maintains any order for its elements. It not allowed duplicate key. A HashMap can have only one null key and multiple null values.

Example

package com.codesjava;
 
import java.util.HashMap;
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");
      return this.getId();
    }
 
    @Override
    public boolean equals(Object obj) {
	Employee e = null;
        if(obj instanceof Employee){
	        e = (Employee) obj;
        }
        System.out.println("In equals");
        if(this.getId() == e.getId()){
	        return true;
        } else {
	        return false;
        }  
     }
}
 
public class Test {
  public static void main(String args[]){
	HashMap<Employee, String> hashMap = new HashMap<Employee, String>();
	hashMap.put(new Employee(1,"Jai",50000), "JAI");
	hashMap.put(new Employee(2,"Mahesh",80000), "MAHSESH");
	hashMap.put(new Employee(3,"Vishal",60000), "VISHAL");
	hashMap.put(new Employee(4,"Hemant",64000), "HEMANT");
	System.out.println("HashMap elements:");
	Set<Employee> keys = hashMap.keySet();
        for(Employee p:keys){
            System.out.println(p+"-"+hashMap.get(p));
        }
	System.out.println("Add duplicate record:");
	hashMap.put(new Employee(4,"Hemant",64000), "HEMANT");
	System.out.println("HashMap elements:");
	keys = hashMap.keySet();
        for(Employee p:keys){
            System.out.println(p+"-"+hashMap.get(p));
        }
  }
}

Output

In hashcode
In hashcode
In hashcode
In hashcode
HashMap elements:
In hashcode
Id: 1, Name: Jai, Salary: 50000-JAI
In hashcode
Id: 2, Name: Mahesh, Salary: 80000-MAHSESH
In hashcode
Id: 3, Name: Vishal, Salary: 60000-VISHAL
In hashcode
Id: 4, Name: Hemant, Salary: 64000-HEMANT
Add duplicate record:
In hashcode
In equals
HashMap elements:
In hashcode
Id: 1, Name: Jai, Salary: 50000-JAI
In hashcode
Id: 2, Name: Mahesh, Salary: 80000-MAHSESH
In hashcode
Id: 3, Name: Vishal, Salary: 60000-VISHAL
In hashcode
Id: 4, Name: Hemant, Salary: 64000-HEMANT


Copyright © 2018 CodesJava DMCA.com Protection Status SiteMap