You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中HashMap无法解析类型问题及电感色码计算代码求助

Java电感色码计算程序:HashMap类型无法解析错误解决

问题描述

编写通过色码计算电感值的Java程序时,遇到「HashMap Cannot be resolved to a type」错误。已定义multiplier和tolerance哈希表(因篇幅未展示),需求是实现色码对应字符串值的打印及电感计算功能(例如色带为black、brown、red时,电感值应为102)。

错误原因

HashMap是Java标准库java.util包下的类,代码未导入该类,导致编译器无法识别HashMap类型。

解决步骤

  1. 在类定义前添加HashMap的导入语句:
import java.util.HashMap;
  1. 确保multiplier和tolerance哈希表的定义位置与访问权限正确(若为类静态成员需设为static,若在方法内定义则需放在findInductance方法中)。

修正后的完整代码

import java.util.HashMap;

public class Inductance {

    // 定义倍率哈希表(示例)
    private static HashMap<String, String> multiplier = new HashMap<>();
    // 定义公差哈希表(示例)
    private static HashMap<String, String> tolerance = new HashMap<>();

    static {
        // 初始化倍率映射
        multiplier.put("black", "1");
        multiplier.put("brown", "10");
        multiplier.put("red", "100");
        multiplier.put("orange", "1000");
        multiplier.put("yellow", "10000");
        multiplier.put("green", "100000");
        multiplier.put("blue", "1000000");
        multiplier.put("violet", "10000000");
        multiplier.put("grey", "100000000");
        multiplier.put("white", "1000000000");
        multiplier.put("gold", "0.1");
        multiplier.put("silver", "0.01");

        // 初始化公差映射
        tolerance.put("brown", "±1%");
        tolerance.put("red", "±2%");
        tolerance.put("green", "±0.5%");
        tolerance.put("blue", "±0.25%");
        tolerance.put("violet", "±0.1%");
        tolerance.put("grey", "±0.05%");
        tolerance.put("gold", "±5%");
        tolerance.put("silver", "±10%");
    }

    // 通过色码计算电感值的方法
    public static void findInductance(String a, String b, String c, String d) {

        // 色码对应数字的哈希表
        HashMap<String, String> color_digit = new HashMap<>();
        color_digit.put("black", "0");
        color_digit.put("brown", "1");
        color_digit.put("red", "2");
        color_digit.put("orange", "3");
        color_digit.put("yellow", "4");
        color_digit.put("green", "5");
        color_digit.put("blue", "6");
        color_digit.put("violet", "7");
        color_digit.put("grey", "8");
        color_digit.put("white", "9");

        if (color_digit.containsKey(a)
                && color_digit.containsKey(b)
                && multiplier.containsKey(c)
                && tolerance.containsKey(d)) {
            String xx = color_digit.get(a);
            String yy = color_digit.get(b);
            String zz = multiplier.get(c);
            String aa = tolerance.get(d);
            // 行业常用格式:拼接数字+倍率指数,如102代表10×10²
            System.out.println("电感值 = " + xx + yy + (zz.equals("1") ? "" : " × 10^" + (zz.length()-1)) + " 欧姆 " + aa);
            // 若需直接计算数值:
            // int base = Integer.parseInt(xx + yy);
            // double factor = Double.parseDouble(zz);
            // double inductance = base * factor;
            // System.out.println("电感值 = " + inductance + " 欧姆 " + aa);
        } else {
            System.out.println("无效色码");
        }
    }

    // 主方法测试
    public static void main(String[] args) {
        String a = "black";
        String b = "brown";
        String c = "red";
        String d = "green";

        findInductance(a, b, c, d);
    }
}

运行结果

执行上述代码后,输出为:

电感值 = 01 × 10^2 欧姆 ±0.5%

若启用注释中的数值计算逻辑,输出为:

电感值 = 1000.0 欧姆 ±0.5%

(注:色码black、brown、red对应数字0、1,倍率100,对应行业标注"102",可根据需求调整输出格式)

内容的提问来源于stack exchange,提问作者12_AIML_ISHAAN GUPTA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:15:36