- Java code
9.请看一下代码: Map map=new HashMap(); map.put(“tom”,123.6); map.put(“jim”,234.5); map.put(“terry”,45.3); 《插入代码》《插入代码》处要实现的功能是把key为“jim”的value值在原有数字的基础上添加100A.map.put(“jim”,map.get(“jim”)+100);B.map.set(“jim”,map.get(“jim”)+100);C.map.put(“jim”,234.5);D.map.set(“jim”,234.5);//为什么拷贝到eclipse里a,b都是错的??
------解决方案--------------------------------------------------------
首先,B,D是错的,因为Map没有set()方法。
A错是因为:map.get(key) 返回的是Object对象。在java中 +号只做2件事情:1.数字的运算;2.合并字符串。 而Object + int这个是不行的。
------解决方案--------------------------------------------------------
可以用泛型来: Map<String, Double> map = new HashMap<String, Double>();
map.put("tom", 123.6);
map.put("jim", 234.5);
map.put("terry", 45.3);
map.put("jim", map.get("jim") + 100);
map.put("jim", 234.5);