-
Notifications
You must be signed in to change notification settings - Fork 1
/
custom_class_as_key_hashmap.java
67 lines (52 loc) · 1.75 KB
/
custom_class_as_key_hashmap.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.util.HashMap;
import java.util.Objects;
class Product
{
private int productNo;
private String productName;
public Product(int productNo, String productName) {
this.productNo = productNo;
this.productName = productName;
}
public int getProductNo() {
return productNo;
}
public void setProductNo(int productNo) {
this.productNo = productNo;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
// here productNo is primary key which identify by equals method
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Product product = (Product) o;
return productNo == product.productNo;
}
@Override
public int hashCode() {
return Objects.hash(productNo);
}
}
public class custom_class_as_key_hashmap {
public static void main(String[] args) {
Product p=new Product(1,"Computer");
Product p1=new Product(2,"Mobile");
HashMap<Product,String> map=new HashMap();
map.put(p,"product1");
map.put(p1,"product2");
map.forEach((k,v)->System.out.println(k.getProductNo() + " === " + k.getProductName()));
System.out.println();
System.out.println("=================================");
System.out.println();
// It prints Computer because productNo is same. so it replace by previous object value
Product p3=new Product(1,"Tv");
map.put(p3,"product3");
map.forEach((k,v)->System.out.println(k.getProductNo() + " === " + k.getProductName()));
}
}