加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

丑陋的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)相关联,而不是值本身.如果始终使用与数组中的键相同的常量,则可以避免麻烦.但是在这种情况下你也可以使用枚举,如果他使用计算的双精度作为地图中的键,那么没有新的程序员遇到麻烦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读