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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© haixian 中级黑马   /  2014-4-3 19:41  /  1052 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

写个算法,求数组字符数组中字符重复出现的次数比如{a,a,a,b,c,d,d,e,a}的输出就是a重复4次,d重复2次。
    public static void statistic(char[] src){
        HashMap<Character,Integer> map=new HashMap<Character,Integer>();
        for(char c :src){
            if(map.containsKey(c)){
                int count=map.get(c);
                map.put(c, ++count);
            }else{
                map.put(c, 1);
            }
        }
        for(char c:map.keySet()){
            if(map.containsKey(c)&&map.get(c)>1){
                System.out.println("char "+c+"repeats for "+map.get(c)+"times");
            }
        }
    }
这是我写的,有谁有没有更好的算法。。。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
从集合中取出时是不是不用判断map.containsKey(c),因为你在上面存入的,取得时候必须有映射关系啊
另外,使用TreeMap集合可以在打印的时候有顺序
回复 使用道具 举报
林发明 发表于 2014-4-3 21:47
从集合中取出时是不是不用判断map.containsKey(c),因为你在上面存入的,取得时候必须有映射关系啊
另外, ...

这个我知道,我想知道有没有更好的算法。
回复 使用道具 举报
看的有点晕晕的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马