我是一名软件实习生,设计一个解析工业模拟器输出的数据文件的程序,以便对它们进行计算。
文件的基本结构如下:
Property1
时间步1 0.000 3.141 5.131等...
时间步2 3.323 0.000等...
等...
需要在某种数据结构中收集数据,以便进行有效的计算。可能有数百万个数据点,但许多数据点的值相同。
我的解决方案(嵌套的HashMaps):
主对象DataContainer有一个HashMap,它包含属性名称作为键。这些键与它们自己的HashMaps相关联,其中包含时间步长数字作为键。这些键与它们自己的HashMaps相关联,这些HashMaps包含数据值作为与在时间步长内发生值的次数配对的键。
快速插图:
DataContainer 属性:
property 1 :
time 1 - 0.000, 4 | 3.313, 10 etc...
time 2
期待人们的投入。
答案 0 :(得分:0)
如果您对效率感兴趣,最好使用属性/ getter / setter为属性创建自定义类。
包含HashMaps等的HashMaps:
答案 1 :(得分:0)
我的想法:
class DataContainer{
TreeMap timestamp<String, SortedList<Integer>>;
}
答案 2 :(得分:0)
我会选择两个长度相同的数组,如double[] value; int[] count;
。这肯定比填充盒装值的Map.Entry
占用更少的空间。我会在他们周围做一个简单的课程,并将其放入你的地图。