gpt4 book ai didi

java - 丑陋的java数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:36:49 29 4
gpt4 key购买 nike

我创建了以下结构,将唯一的 double 值映射到一对或多对整数:

   @SuppressWarnings("boxing")
private static final HashMap<Double, Integer[][]> rules =
new HashMap<Double, Integer[][]>() {
private static final long serialVersionUID = 1L;
{
put(-0.6, new Integer[][] { { 1, 3 } });
put(-0.3, new Integer[][] { { 2, 2 } });
put(0.0, new Integer[][] { { 2, 4 }, { 3, 3 }, { 4, 2 } });
put(0.3, new Integer[][] { { 4, 4 } });
put(0.6, new Integer[][] { { 5, 3 } });
}
};

我能否重写它使其更简单 - 即不必处理警告(serialVersionUID、装箱),而且它是如此冗长?

最佳答案

首先应该为整数对使用一个类。或者这是一个巧合,所有数组都包含一堆对?

第二件事是,这些初始化数据可以从配置文件中读取。

编辑: 当我再次查看这段代码时,我意识到将 Doubles 作为 Map 中的键有点冒险。如果作为数学运算的结果生成 double ,则不清楚它们对于计算机是否相等(即使它们在数学意义上相等)。 float 在计算机中表示为近似值。您很可能希望将值与间隔(例如 0.0-0.3)相关联,而不是值本身。如果您始终使用与数组中的键相同的常量,您可能会避免麻烦。但在这种情况下,您也可以使用枚举,如果新程序员使用他计算的 double 值作为映射中的键,则不会遇到麻烦。

关于java - 丑陋的java数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/772876/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com