我是一名软件实习生,正在设计一个程序,该程序可以解析工业模拟器输出的数据文件,以便对其进行计算。
文件的基本结构如下:
Property1
时间步长1 0.000 3.141 5.131等...
时间步长2 3.323 0.000等...
等等。
需要以某种数据结构收集数据,以便进行有效的计算。可能有几百万个数据点,尽管其中许多是相同的值。
我的解决方案(嵌套HashMaps):
主对象DataContainer有一个HashMap,其中包含属性名作为键。这些关键点与它们自己的包含时间步数作为关键点的HashMaps相关联。这些键与它们自己的HashMaps相关联,其中包含数据值作为键,这些键与该值在timestep内出现的次数成对。
快速说明:
DataContainer属性:
property 1 :
time 1 - 0.000, 4 | 3.313, 10 etc...
time 2期待着人们的意见。
发布于 2011-01-28 14:46:40
如果您对效率感兴趣,最好为属性创建带有属性/ getters /setter的自定义类。
包含HashMaps等的HashMaps:
发布于 2011-01-28 14:59:51
我的想法是:
class DataContainer{
TreeMap timestamp<String, SortedList<Integer>>;
}发布于 2011-01-28 15:04:28
我会选择两个长度相同的数组,比如double[] value; int[] count;。这肯定比用盒装的值填充的Map.Entry占用的空间要少得多。我会在它们周围创建一个简单的类,并将其放入您的Map中。
https://stackoverflow.com/questions/4825280
复制相似问题