在地图中多次添加Class的同一对象作为KEY

时间:2014-11-02 14:25:13

标签: java map

我有测试类,它包含属性名称和工资,现在我想在地图中多次添加测试类的相同对象作为键。 怎么实现呢? 不想使用MultiMap

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;


public class InitialPage {

    private String name;
    private double salary;

    public InitialPage(String name,double salary)
    {
        this.name=name;
        this.salary=salary;
    }

    public static void main(String[] args) {

        InitialPage s3 =new InitialPage("Nitesh",23889371);
        InitialPage s1 =new InitialPage("bagri",23889371);
        InitialPage s2 =new InitialPage("Nitesssh",23889371);


    HashMap<InitialPage, String> map1=new HashMap<InitialPage,String>();
        map1.put(s1, "nit");
        map1.put(s2, "nits");
        map1.put(s1, "nite");
        map1.put(s1, "anite");

        System.out.println("size "+map1.size());
        System.out.println(map1.get(s1));
    }

}

它只显示大小为2,同一个键将覆盖VALUE(键值)的值。

1 个答案:

答案 0 :(得分:0)

改为使用Map<TestClass, List<ValueClass>>

以下是有关如何将自己的 multimap 作为Map的包装推广的基本示例。

public class BasicMultiMap<K, V> {
    private Map<K, List<V>> map = new HashMap<>();
    public void put(K key, V value) {
        List<V> list = map.get(key);
        if (list == null) {
            list = new ArrayList<>();
            map.put(key, list);
        }
        list.add(value);
    }
    public List<V> get(K key) {
        return map.get(key);
    }
}