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

判断Java方法q3正确性:计算HashMap中负数的正切值最小值

验证你的q3方法是否正确的指南

嘿,我来帮你梳理怎么判断代码是否符合要求,同时给你一个标准实现作为参考对照!

核心检查要点

你可以逐一核对这些要求,确保你的代码完全满足:

  • 方法签名合规性:必须是public static double q3(HashMap<String, Integer> map),返回类型为double,参数类型不能出错
  • 负数过滤逻辑:是否只处理值为负数的元素?正数和0必须完全忽略
  • 正切值计算:有没有对每个负数调用Math.tan()?注意Math.tan()的参数是弧度,题目没特别说明转角度的话,直接用负数数值即可
  • 最小值返回逻辑:返回的是正切值的最小值,绝对不能返回原负数本身
  • 边界情况处理:如果输入的HashMap里没有任何负数,你的代码有没有合理处理?比如抛出异常、返回Double.NaN,避免出现运行时错误

标准实现示例

下面是完全符合需求的代码,你可以和自己的代码对比:

import java.util.HashMap;
import java.util.OptionalDouble;

public class MathUtils {
    public static double q3(HashMap<String, Integer> map) {
        // 过滤负数 → 计算每个负数的正切值 → 提取最小值
        OptionalDouble minTangent = map.values().stream()
                .filter(number -> number < 0)
                .mapToDouble(Math::tan)
                .min();

        // 处理无负数的异常情况
        if (minTangent.isEmpty()) {
            throw new IllegalArgumentException("输入的HashMap中不存在负数");
        }

        return minTangent.getAsDouble();
    }
}

测试案例参考

用这些案例验证你的代码是否正确:

  • 案例1:输入包含值-1、-2、-3的HashMap,它们的正切值分别约为-1.5574、2.1850、-0.1425,代码应返回-1.5574
  • 案例2:输入的HashMap全是正数/0,代码应抛出异常或返回Double.NaN(取决于你的处理逻辑)
  • 案例3:输入包含-1(近似-π/2的整数),正切值约为-1.5574,返回该值

内容的提问来源于stack exchange,提问作者maahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:20:56