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

蒙特卡洛贝叶斯实验中TreeMap<Double,Double> put方法参数不匹配报错求助

解决TreeMap<Double,Double> put方法的类型不匹配报错

报错原因

TreeMap<Double, Double>的put方法要求键和值都为Double包装类型,但你传入的第一个参数是int类型(比如time()或getCurrentIteration()的返回值),Java无法自动将int直接装箱为Double,因此触发类型不匹配错误。

解决方案

方法一:显式转换int为Double

修改两处put方法的调用代码,将int类型的键强制转为double:

  • 原代码:incidences1.put(time(), Incidence);
    修改后:incidences1.put((double) time(), Incidence);
  • 原代码:root.incidences1.put(getCurrentIteration(), root.Incidence_Plot);
    修改后:root.incidences1.put((double) getCurrentIteration(), root.Incidence_Plot);

方法二:修改TreeMap泛型类型(如果业务允许)

如果你的键本质是整数类型(比如迭代次数、时间步长),可以直接调整incidences1的泛型定义:
原定义:TreeMap<Double,Double> incidences1;
修改后:TreeMap<Integer,Double> incidences1;
这样传入int类型的键时,Java会自动装箱为Integer,无需额外转换。

选择建议

优先用方法一,能保持和你代码中IncidenceDS.add(time(), Incidence);的类型一致性;如果迭代次数/时间步本身是整数且不需要浮点型键,方法二更贴合数据实际类型。

内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:35:11