2011-01-28 12 views
0

我是一位软件实习生,设计了一个解析工业模拟器输出的数据文件的程序,以便对它们进行计算。我应该如何在Java中有效存储质量数值数据?请批评我的解决方案

文件的基本结构是这样的:

Property1

时间步1 0.000 3.141 5.131等等

时间步2 3.323 0.000等等

etc ...

数据需要收集在某种数据结构中以便考虑到有效的计算。可能有几百万个数据点,尽管许多数据都是相同的值。

我的解决办法(嵌套包含HashMap):

主要目的,DataContainer具有包含属性名作为密钥的HashMap中。这些键与它们自己的HashMap相关联,其中包含时间步数作为键。这些键与它们自己的HashMaps相关联,其中包含的数据值与在时间步骤内出现值的次数配对的键的值相同。

快速插图:

DataContainer 性质:

property 1 : 
       time 1 - 0.000, 4 | 3.313, 10 etc... 
       time 2 

期待人们的输入。

+0

你想要做什么类型的计算? – 2011-01-28 06:09:13

回答

0

如果您对效率感兴趣,最好使用属性/ getters/setter为属性创建自定义类。

包含HashMap包含包含HashMap等:

  • 会占用更多空间,
  • 较慢,
  • 更棘手的使用...特别是如果你想要遍历可预知的顺序的元素,
  • 否定了Java内在编译时类型安全性的好处。
0

我的想法:

class DataContainer{ 
    TreeMap timestamp<String, SortedList<Integer>>; 

} 
0

我会去的长度相同像double[] value; int[] count;的两个数组。这肯定比填充盒装值的Map.Entry占用更少的空间。我会围绕他们做一个简单的课程,并将其放到您的地图中。

相关问题