Monday, January 12, 2015

Java Using Defined objects as a key from HashMap Program



How to find user defined objects as a key from HashMap

package com.java2novice.hashmap;
import java.util.HashMap;
import java.util.Set;
public class MyObjectKeySearch
{
public static void main(String a[])
{
        HashMap hm = new HashMap();
        hm.put(new Price("Banana", 20), "Banana");
        hm.put(new Price("Apple", 40), "Apple");
        hm.put(new Price("Orange", 30), "Orange");
        printMap(hm);
        Price key = new Price("Banana", 20);
        System.out.println("Does key available? "+hm.containsKey(key));
    }
public static void printMap(HashMap map)
          {
        Set keys = map.keySet();
        for(Price p:keys)
        {
            System.out.println(p+"==>"+map.get(p));
        }
    }
}

class Price
{
    private String item;
    private int price;
 public Price(String itm, int pr)
 {
        this.item = itm;
        this.price = pr;
 }
 public int hashCode()
 {
        System.out.println("In hashcode");
        int hashcode = 0;
        hashcode = price*20;
        hashcode += item.hashCode();
        return hashcode;
  }
 public boolean equals(Object obj)
 {
        System.out.println("In equals");
        if (obj instanceof Price)
         {
            Price pp = (Price) obj;
            return (pp.item.equals(this.item) && pp.price == this.price);
        }
         else
        {
            return false;
        }
    }
    public String getItem()
    {
        return item;
    }
    public void setItem(String item)
    {
        this.item = item;
    }
    public int getPrice()
    {
        return price;
    }
    public void setPrice(int price)
   {
        this.price = price;
    }
    public String toString()
   {
        return "item: "+item+"  price: "+price;
    }
}

How to delete user defined objects as a key from HashMap

package com.java2novice.hashmap;
import java.util.HashMap;
import java.util.Set;
public class MyDeleteKeyObject
{
public static void main(String a[])
{
        HashMap hm = new HashMap();
        hm.put(new Price("Banana", 20), "Banana");
        hm.put(new Price("Apple", 40), "Apple");
        hm.put(new Price("Orange", 30), "Orange");
        printMap(hm);
        Price key = new Price("Banana", 20);
        System.out.println("Deleting key...");
        hm.remove(key);
        System.out.println("After deleting key:");
        printMap(hm);
 }
public static void printMap(HashMap map)
{
        Set keys = map.keySet();
        for(Price p:keys)
        {
            System.out.println(p+"==>"+map.get(p));
        }
    }
}
class Price
{
    private String item;
    private int price;
 public Price(String itm, int pr)
 {
        this.item = itm;
        this.price = pr;
    }
  public int hashCode()
  {
        System.out.println("In hashcode");
        int hashcode = 0;
        hashcode = price*20;
        hashcode += item.hashCode();
        return hashcode;
    }
  public boolean equals(Object obj)
 {
        System.out.println("In equals");
        if (obj instanceof Price)
        {
            Price pp = (Price) obj;
            return (pp.item.equals(this.item) && pp.price == this.price);
        }
         else
        {
            return false;
        }
    }
 public String getItem()
 {
        return item;
  }
 public void setItem(String item)
          {
        this.item = item;
 }
 public int getPrice()
{
        return price;
 }
 public void setPrice(int price)
{
        this.price = price;
 }
 public String toString()
 {
        return "item: "+item+"  price: "+price;
    }
 }

No comments:

Post a Comment