首页 > 解决方案 > 为什么这个 getOrDefault(key, value) 方法在这段代码中不起作用?

问题描述

在这段代码中,我试图将每个字符映射到一个表示其出现的计数器。但是,在第 7 行 (int count = map.getOrDefault(chars[i], 0);),有一个编译错误说:

Solution.java:7: 错误:找不到符号整数计数 = map.getOrDefault(chars[i], 0); ^ 符号:方法 getOrDefault(char,int) 位置:HashMap<Character,Integer> 类型的变量映射 1 错误 为什么会这样?

static String isValid(String s) {
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        char[] chars = s.toCharArray();
        int N = chars.length;
        boolean chance = true;
        for(int i = 0 ; i < N ; i++){
            int count = map.getOrDefault(chars[i], 0);
            if(count >= 1){
                if(chance)
                    chance = false;
                else
                    return "NO";
            }
            map.put(chars[i], count + 1);
        }
        return "YES"; 
    }

标签: javastringdictionarycompiler-errorsdefault

解决方案


我建议检查你的进口。也许地图导入是错误的,一定要使用
import java.util.*;. * 将导入java.util包的所有内容,只是为了安全;)。

希望能帮到你,继续努力!


推荐阅读