我有测试类,它包含属性名称和工资,现在我想在地图中多次添加测试类的相同对象作为键。 怎么实现呢? 不想使用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(键值)的值。
答案 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);
}
}