如何防止HashMap存储重复的Object类型值并返回现有的值引用?

时间:2017-07-08 14:05:24

标签: java hashmap equals hashcode

我有以下程序片段。

public class MapKeyAsAnObject {

    public static void main(String[] args) {

        Employee e1 = new Employee(1, "abc"); // P
        Employee e2 = new Employee(2, "xyz");
        Map<Employee, String> map = new HashMap<Employee, String>();
        map.put(e1, "Object1");
        map.put(e2, "Object2");

        System.out.println(map.get(e1)); // A
        System.out.println(map.get(new Employee(1, "abc"))); //B
    }
}

// My pojo class
class Employee {

    private int id;
    private String name;

    public Employee(int id, String arg) {
        this.id = id;
        this.name = arg;
    }            
}
  

在上面的程序中,语句'A'返回“Value1”,这很好,因为   我传递相同的引用来获取值,但在语句'B'中   返回null但我想获得“Value1”因为声明'P'和'B'中的Employee类具有我想要阻止存储的相同雇员数据,并且想要在语句'B'中返回e1的引用。应该怎样做才能实现目标。

0 个答案:

没有答案