丑陋的java数据结构
发布时间:2020-12-15 08:29:50 所属栏目:Java 来源:网络整理
导读:我创建了以下结构,它将唯一的double值映射到一对或多对整数: @SuppressWarnings("boxing") private static final HashMapDouble,Integer[][] rules = new HashMapDouble,Integer[][]() { private static final long serialVersionUID = 1L; { put(-0.6,new
我创建了以下结构,它将唯一的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,4 },{ 3,3 },{ 4,2 } }); put(0.3,new Integer[][] { { 4,4 } }); put(0.6,new Integer[][] { { 5,3 } }); } }; 我可以重写这个更简单 – 即不必处理警告(serialVersionUID,拳击),它是如此冗长? 解决方法
使用类对应的整数应该是第一个.或者这是巧合,所有数组都包含一堆对吗?
第二点是,可以从配置文件中读取这些初始化数据. 编辑:当我再次查看这段代码时,我意识到双打作为地图中的键有点风险.如果由于数学运算而产生双打,则不清楚它们是否与计算机相等(即使它们在数学意义上相等).浮点数表示为计算机中的近似值.您很可能希望将值与间隔(示例0.0-0.3)相关联,而不是值本身.如果始终使用与数组中的键相同的常量,则可以避免麻烦.但是在这种情况下你也可以使用枚举,如果他使用计算的双精度作为地图中的键,那么没有新的程序员遇到麻烦. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |