黑马程序员技术交流社区

标题: 简单的算法题 [打印本页]

作者: haixian    时间: 2014-4-3 19:41
标题: 简单的算法题
写个算法,求数组字符数组中字符重复出现的次数比如{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");
            }
        }
    }
这是我写的,有谁有没有更好的算法。。。


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

这个我知道,我想知道有没有更好的算法。
作者: 黄泉    时间: 2014-4-3 22:54
看的有点晕晕的!




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