【问题标题】:Why this getOrDefault(key, value) method is not working in this code?为什么这个 getOrDefault(key, value) 方法在这段代码中不起作用?
【发布时间】:2021-02-10 18:50:47
【问题描述】:

在这段代码中,我试图将每个字符映射到代表其出现的计数器。但是,在第 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"; 
    }

【问题讨论】:

  • 可能需要显式转换。 Character 不是 charInteger 不是 int
  • 代码对我有用。您使用的是什么 Java 版本?
  • 除了Simon说的,你确定导入了java.util.Map而不是其他类型吗?

标签: java string dictionary compiler-errors default


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-09-18
    相关资源
    最近更新 更多