A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 田建 高级黑马   /  2012-6-6 15:07  /  1666 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 田建 于 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.                         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 罗文杰 于 2012-6-6 15:17 编辑

你的泛型定义的是Integer,基本类型不能作为泛型的参数化类型,所以不能用8种基本数据类型来定义泛型,其中就有int。所以那里只能用Integer,不能用int。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
集合中只存放对象,当然取出的也是对象。
往集合中添加int等基本类型时,会被自动装箱成其相应的包装类型,从集合中取出时,取出的就是装箱后的包装类型。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
就如楼上说的,泛型储存的是对象,所以要定义成整形数据对象,才能储存。
所用会说用的Interger,而不是用的int
回复 使用道具 举报
泛型存储的是对象,不能是基本数据类型  会进行自动装箱和拆箱处理的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马