JRL*_*JRL 3 java data-structures
我创建了以下结构,它将唯一的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 } });
}
};
Run Code Online (Sandbox Code Playgroud)
我可以重写这个更简单 - 即不必处理警告(serialVersionUID,拳击),它是如此冗长?
使用类对应的整数应该是第一个.或者这是巧合,所有数组都包含一堆对吗?
第二点是,可以从配置文件中读取这些初始化数据.
编辑:当我再次查看这段代码时,我意识到双打作为地图中的键有点风险.如果由于数学运算而产生双打,则不清楚它们是否与计算机相等(即使它们在数学意义上相等).浮点数表示为计算机中的近似值.您很可能希望将值与间隔(示例0.0-0.3)相关联,而不是值本身.如果始终使用与数组中的键相同的常量,则可以避免麻烦.但是在这种情况下你也可以使用枚举,如果他使用计算的双精度作为地图中的键,那么没有新的程序员遇到麻烦.
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |