黑马程序员技术交流社区

标题: <已解决>TreeMap中的一个小问题! [打印本页]

作者: 田建    时间: 2012-6-6 15:07
标题: <已解决>TreeMap中的一个小问题!
本帖最后由 田建 于 2012-6-8 11:58 编辑

这是获取字符串各字母出现次数的一小段代码:
  1. if(!(chs[x]>='a'&&chs[x]<='z'||chs[x]>='A'&&chs[x]<='Z'))
  2.                                 continue;
  3.                         Integer value=tm.get(chs[x]);//TreeMap中存放的是键值对,取的值为什么是Integer而不是int呢?
  4.                         if(value==null)
  5.                         {
  6.                                 tm.put(chs[x],1);
  7.                         }
  8.                                 
  9.                         else
  10.                         {
  11.                                 value=value+1;
  12.                                 tm.put(chs[x],value);
  13.                         }
复制代码

作者: 罗文杰    时间: 2012-6-6 15:16
本帖最后由 罗文杰 于 2012-6-6 15:17 编辑

你的泛型定义的是Integer,基本类型不能作为泛型的参数化类型,所以不能用8种基本数据类型来定义泛型,其中就有int。所以那里只能用Integer,不能用int。
作者: 张少威    时间: 2012-6-6 15:17
集合中只存放对象,当然取出的也是对象。
往集合中添加int等基本类型时,会被自动装箱成其相应的包装类型,从集合中取出时,取出的就是装箱后的包装类型。

作者: 王渠    时间: 2012-6-6 16:05
就如楼上说的,泛型储存的是对象,所以要定义成整形数据对象,才能储存。
所用会说用的Interger,而不是用的int
作者: 陌花╮有意、    时间: 2012-6-7 09:45
泛型存储的是对象,不能是基本数据类型  会进行自动装箱和拆箱处理的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2