如果多个key可以同一个value的话,在代码中怎么能够体现,让多个key映射到同一个value上面,如果采用多map的话,查询的效率有没有影响?有没有必要让多个key映射到一个value上面?
那如果多个不同的key对应相同的value时,我们该怎么处理呢?当我把这些键值对存了过后不需要改变,有没有什么简便的方法存储来节约空间?
追答如果是同一个MAP的话,其实在堆上只有一个value,在栈上的不同key存的是相同的地址(即都是指向同一个value)你运行下一下代码 看看 打印的HashCode是不是一样的嘛:
public static void main(String[] args) {
Map map = new HashMap();
map.put("北京","中国");
map.put("上海","中国");
map.put("四川","中国");
map.put("重庆","中国");
for(String str : map.keySet()){
System.out.println("value:" + map.get(str) + "--HashCode:" + map.get(str).hashCode());
}
}
我知道,我目前的情况就是这一种,就是说在代码方面有没有什么简便的实现使的多个key对应一个value,那样不是节约存储空间吗
追答一个map可以做到,你干嘛要用多个?
追问就是说这个地方不是看着value有重复的吗,有没有办法将多个key放在一块,映射到一个value上
追答你想的太多了,map就是这么用的。
不懂为什么就看看他源代码。
如何将一个value设定为同一个对象的引用呢
map.put("123","abc");
map.put("234","abc");
写代码的时候应该还是这个样子的吧,有什么简便的写法吗