[英]add same object of Class multiple times as KEY in map
i have Test Class and it contains attributes name and salary and now i wants to add same object of Test Class multiple times as Key in map. 我有测试类,它包含属性名称和薪水,现在我想多次添加相同的测试类对象作为映射中的键。 how to achieve that? 如何实现? don't wants to use MultiMap 不想使用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));
}
}
And it is showing size as 2 only and same key will overwrite value of VALUE(key-value). 并且它仅显示大小为2,并且相同的键将覆盖VALUE(键-值)的值。
Use a Map<TestClass, List<ValueClass>>
instead. 请改用Map<TestClass, List<ValueClass>>
。
Here's a basic example about how to roll your own multimap as a wrapper of Map
. 这是一个有关如何将自己的多图作为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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.