How to eliminate duplicate user defined objects as a key from Linked HashMap
package com.java2novice.linkedhashmap;
import java.util.LinkedHashMap;
import java.util.Set;
public class MyDuplicateKeyEx
{
public static void main(String a[])
{
LinkedHashMap hm = new LinkedHashMap();
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("Adding
duplicate key...");
hm.put(key,
"Grape");
System.out.println("After
adding dulicate key:");
printMap(hm);
}
public static void
printMap(LinkedHashMap 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()
{
int
hashcode = 0;
hashcode
= price*20;
hashcode
+= item.hashCode();
return
hashcode;
}
public boolean equals(Object obj)
{
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 find user defined objects as a key from Linked HashMap
package com.java2novice.linkedhashmap;
import java.util.LinkedHashMap;
import java.util.Set;
public class MyObjectKeySearch
{
public static void main(String a[])
{
LinkedHashMap hm = new LinkedHashMap();
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(LinkedHashMap 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