2011-12-23 26 views
3

假设我们具有表示这样的已知大小的表传入值:优雅和有效的方式把输入的串行数据转换为结构

- a b c 
x 06 07 08 
y 10 11 12 
z 14 15 16 

但值是从流/迭代或其它串行形式到达的,在向上到下,左到右的顺序为:

- a b c x 06 07 08 y 10 11 12 z 14 15 16 

假设从像newVal = provider.getNext()一些供应商,数据到达,我们不能在相反的方向走。

什么是最优雅,最有效的(preffer面向对象)方式把输入的数据在三种结构:

top : 0=>a 1=>b 2=>c 
left: 0=>x 1=>y 2=>z 
data: 0,0=>06 1,0=>07 2,0=>08 
     0,1=>10 1,1=>11 2,1=>12 
     0,2=>10 1,2=>11 2,2=>12 

它会更好用一些开关/代表或只是缓冲所有数据和提取部分我们需要循环(假设每个值都具有相同的类型,比方说整数)?

假设我们不需要收集的数据在正确的结构,实时(整个数据可以缓冲,但是我找有效的解决方案)。

现实世界中这一问题的数据是三“地图”,每500×500左右在java中的POI扩展从.xls文件readed如果它很重要大小。

回答

0

我觉得优雅和效率取决于你要对数据运行任务。 在一般情况下,在我看来,最有效的方式存储在原始格式的数据(如060708101112141516),并假设元件尺寸是不变的,我们知道“列”的量,总是可以得到的指针到知道它的坐标的任何元素(行/列名或数字)。 也可以从这样的数据块中检索每个三重映射。

但如果你的任务是从得到由他们的指数的元素不同,实现可能会有所不同。

相关问题