黑马程序员技术交流社区
标题:
集合问题...
[打印本页]
作者:
張帅
时间:
2013-10-1 15:13
标题:
集合问题...
本帖最后由 張帅 于 2013-10-1 23:37 编辑
import java.util.*;
class TreeMapTest
{
public static void main(String[] args)
{
charCount("abcdbsadcb");
}
public static String charCount(String str)
{
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
/
/问题,TreeMap中的Charactor和Integer能不能换成int和char为什么?
for(int x=0;x<chs.length;x++)
{
Integer value = tm.get(chs[x]);//当x=0时,chs[0]位置的字符时‘a’这句整句语句是不是获取a出现的次数的意思还是?
if(value==null)
{
tm.put(chs[x],1);
}
else
{
value=value+1;
tm.put(chs[x],value);
}
}
System.out.println(tm);
return null;
}
}
作者:
lizhangzhi
时间:
2013-10-1 15:39
问题,TreeMap中的Character和Integer能不能换成int和char为什么?
不能,TreeMap集合是存储对象的,泛型中的类型是用来定义集合中元素类型,对象类型不能使基本数据类型;
当x=0时,chs[0]位置的字符时‘a’这句整句语句是不是获取a出现的次数的意思还是?
获取a出现的次数,如果值为空,则为集合添加元素,如果不为空,value加1,并覆盖集合中原先存在的值;
作者:
路边小色狼
时间:
2013-10-1 15:56
我是这么理解的:1.泛型可以限定集合中的输入类型,里面要放类,也可以是自己定义的类,或通配符。
Integer是类,而int不是。
2.Integer value = tm.get(chs[x]);
这个你先要理解Map集合的特点,它是成对添加进集合的,键和值。而且键不重复
当x=0时,tm.get(chs[0])是 键a所对应的值。因为现在集合中还没有元素,所以为null
根据下面的判断语句,值为null时,往集合中加元素 tm.put(chs[x],1);
如果不为null,那就把值+1
这样到最后,每个键所对的值就是出现的次数
作者:
安续东
时间:
2013-10-1 16:00
第一个问题,为什么要用Character和Integer,不能用char和int,因为char和int是基本数据类型,而character和integer是这两个基本数据类型的封装类,对于集合来说只能以类作为它的存储对象,而这时要把int类型的数据存储到集合里是不可能的,必须把他包装成类,所以他们存在是很必要的。
作者:
杨增坤
时间:
2013-10-1 21:26
你要明白这是计算一个字符串中每个字符出现的次数,
你知道运行的思路,那么这个题就很容易理解了。
思路:
1.把字符串转化成字符数组后,然后开始遍历数组
2.在遍历的时候,没读取一个字符,然后在集合中查看,如果存在则读取出来,然后数量加1,然后在存入里面如果没有,则添加里面,数量是1.
3.输出格式,读取集合然后拼接字符串,利用StringBuffer。
希望对你有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2