Java 中 HashMap的使用遇到的一样问题,有截图,大家帮我看看···

这是一个从eclipse中参数中输入姓名然后统计每个名字出现次数的程序,使用HashMap类,我疑问的是:第一个红方框中的定义key所映射的value值已经是Intege... 这是一个从eclipse中参数中输入姓名然后统计每个名字出现次数的程序,使用HashMap类,我疑问的是:第一个红方框中的定义key所映射的value值已经是Integer类型了,为什么第二个红框中map.get()前面还要加上强制类型转换?不是已经是Integer类型了吗? 展开
 我来答
603642367
2012-03-28 · TA获得超过932个赞
知道小有建树答主
回答量:380
采纳率:33%
帮助的人:155万
展开全部
因为这个hashmap对象定义的时候没有说明key和value的类型,所以默认都是Object型的,在调用hashmap的put方法时,Integer是Object的子类,所以可以直接put,但是get的时候获取到的是Object型的,所以要强制转换一下
644792799
2012-03-28 · TA获得超过662个赞
知道小有建树答主
回答量:696
采纳率:100%
帮助的人:529万
展开全部
因为你定义Map的时候没强制定义类型,虽然你args[i]已经确定类型但是当你放到Map中后类型就发生了变化,可以改成Map<Object,Integer> map = new HashMap<Object,Integer>();
这样就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毒笼
2012-03-28 · TA获得超过203个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:174万
展开全部
HashMap<K, V> 这里牵扯到泛型.未指定类型默认Object,
如果HashMap<String, Integer> map=new HashMap()就可以不强转了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鼻涕一米二
2012-03-28 · TA获得超过816个赞
知道小有建树答主
回答量:460
采纳率:100%
帮助的人:264万
展开全部
HashMap<K, V> 这里牵扯到泛型,hashmap你没指定泛型类型,则默认存储类型为Object
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gesunny
2012-03-28 · 超过11用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:39.3万
展开全部
HashMap<String,Integer> map=new HashMap<String,Integer>();这样就不用了,因为你的map.get返回值是Object类,他不会自动给你改成你要的类型,不过你可以用泛型,就不用强制转换了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94e20bd
2012-03-28 · TA获得超过109个赞
知道答主
回答量:258
采纳率:100%
帮助的人:171万
展开全部
map.get()返回最大的父类,object,要强制。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式