有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是存储矩阵值以便以后访问的更好方法

我正在开发一个医学应用程序,对于公式中的某些领域,我必须根据人的年龄和身高计算出最佳结果。最佳值在一个矩阵中给出,其中的指数是身高和年龄(显然),如下所示:

    Height 135 140 and so on...
Age     
5          1.5 1.6
10         1.6 1.8
15         1.7 1.8
and so on...

我不能在数据库中存储这些值,所以我想知道存储这些值的更有效的方法是什么

我首先想到的是使用这个:

private static Map<Integer, HashMap<Integer, Float>> optimalValues = new HashMap<Integer, HashMap<Integer, Float>>();

第一个指标是年龄,第二个指标是身高

数据验证是通过一个静态类进行的,矩阵将构建在一段静态初始化代码中

有没有更好的办法


共 (1) 个答案

  1. # 1 楼答案

    简短回答:

    主要问题是您的数据是否遵循严格的结构

    • 严格:高度介于140和200之间,按5个单位间隔分割
    • Lax:您可能需要输入136的高度

    如果它是严格的,那么只要你遵守规则,{}就可以了。 如果它是松弛的,则需要一个map来实现灵活性

    严格的结构也意味着,对数据进行更改将更加困难。 地图允许你输入任何你想要的数据,没有限制,但是有缺点

    更长的回答: 这实际上取决于你有什么要求

    • 您的表格是否完全是一个2D表格,每个单元格都有值
    • 它是稀疏阵列还是锯齿阵列

    如果所有行的单元格数都完全相同,并且您不打算进行任何重大更改,那么简单的浮点[]2D数组在所有方面都更有效:

    • 浏览数据的速度更快
    • 它使用的内存稍微少一些
    • 您不需要使用对象、引用和装箱/取消装箱
    • 内存的分配是连续的

    另一方面,如果您突然决定为136添加一个高点,则“地图”更适合,因为您可以动态输入所需的任何新数据