小编Jus*_*ley的帖子

计算Java中Map的键的出现次数

我正在编写一个项目,从.java文件中捕获Java关键字,并使用地图跟踪事件.我过去使用过类似的方法,但是我似乎无法在这里使用这种方法.

    Map<String,Integer> map = new TreeMap<String,Integer>();
    Set<String> keywordSet = new HashSet<String>(Arrays.asList(keywords));
    Scanner input = new Scanner(file);
    int counter = 0;
    while (input.hasNext())
    {
        String key = input.next();
        if (key.length() > 0)
        {
            if (keywordSet.contains(key))
            {
                map.put(key, 1);
                counter++;
            }

                if(map.containsKey(key)) <--tried inner loop here, failed
                {
                    int value = map.get(key);
                    value++;
                    map.put(key, value);
                }

        }
Run Code Online (Sandbox Code Playgroud)

这段代码应该将关键字添加到密钥中,并在每次出现相同密钥时递增值.到目前为止,它添加了关键字,但无法正确增加值.这是一个示例输出:

{assert=2, class=2, continue=2, default=2, else=2, ...} 
Run Code Online (Sandbox Code Playgroud)

基本上它会增加地图中的每个值而不是它应该的值.我不确定我是否过度思考这个或者什么.我尝试了一个内循环,它给了我疯狂的结果.我真的希望我只是过度思考这个问题.任何帮助是极大的赞赏!

java dictionary

5
推荐指数
3
解决办法
2万
查看次数

标签 统计

dictionary ×1

java ×1