为什么这个 getOrDefault(key, value) 方法在这段代码中不起作用?

问题描述

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

Solution.java:7: 错误:找不到符号 整数计数 = map.getorDefault(chars[i],0); ^ 符号:方法 getorDefault(char,int) 位置:HashMap 类型的变量映射 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"; 
    }

解决方法

我建议检查您的进口。可能Map导入有误,一定要用
import java.util.*;。 * 将导入 java.util 包的所有内容,只是为了安全;).

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