1

由于基于此定义的非常大的查找表,我遇到了此编译器错误:

//92 X 182 array
private static final double[][] lookUpTable = new double[][]
{
    { numbers....}
};

据我了解,将其拆分是一种解决方案,但是要准确拆分该数组将非常困难。我也相信我可以把它移到一个文件中,但我不知道我是否可以格式化它以帮助我,另外我不希望每秒读取文件。还有其他建议可以帮助我解决这个问题吗?

4

3 回答 3

5

将表转换为文件,将文件作为资源嵌入,在静态初始化块中读取一次,然后将其存储在lookUpTable数组中。它将无法与通过聚合初始化的数组区分开来,除非没有 65535 限制。存储在静态变量中将帮助您避免“每秒读取一次”。

就格式而言,您可以将矩阵的每一行放在资源文件的单独行中。读取和维护这个文件会很简单,因为您的数字周围不会有其他标记。

这是解释如何从资源中读取文件的答案的链接

于 2012-09-05T19:47:18.817 回答
1

按需读取文件一次。

由于您有一个表格/矩阵,我建议每行有一行。阅读每一行并拆分数字并单独解析它们。

于 2012-09-05T19:42:49.597 回答
0

您可以将字符串中的行保留为逗号分隔值(从而减少 java 处理的对象数量),并在程序启动时拆分每一行,从而建立您的 long 表。

于 2012-09-05T19:51:12.873 回答