判断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
相关产品推荐
相关产品推荐

