Java IdentityHashMap(Map <? extends K ,? extends V > m) Constructor
Syntax
IdentityHashMap(Map <? extends K ,? extends V > m) constructor from IdentityHashMap has the following syntax.
public IdentityHashMap(Map <? extends K ,? extends V> m)
Example
In the following code shows how to use IdentityHashMap.IdentityHashMap(Map <? extends K ,? extends V > m) constructor.
// w w w . j ava 2s . c o m
import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<Employee, String> map2 = new HashMap<Employee, String>();
Employee e2 = new Employee("J", 26);
map2.put(e2, "MGMT");
System.out.println(map2);
e2.setAge(27);
System.out.println(map2);
System.out.println(map2.containsKey(e2));//false
Map<Employee, String> map1 = new IdentityHashMap<Employee, String>(map2);
System.out.println(map1);
}
}
class Employee {
private String name;
private int age;
Employee(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Employee))
return false;
Employee e = (Employee) o;
return e.name.equals(name) && e.age == age;
}
@Override
public int hashCode() {
int hashCode = 19;
hashCode = hashCode * 31 + name.hashCode();
hashCode = hashCode * 31 + age;
return hashCode;
}
void setAge(int age) {
this.age = age;
}
void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name + " " + age;
}
}
The code above generates the following result.
Home »
Java Tutorial »
java.util »
Java Tutorial »
java.util »