黑马程序员技术交流社区

标题: 集合问题... [打印本页]

作者: 張帅    时间: 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