2011-12-23 32 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),並假設元件尺寸是不變的,我們知道「列」的量,總是可以得到的指針到知道它的座標的任何元素(行/列名或數字)。 也可以從這樣的數據塊中檢索每個三重映射。

但如果你的任務是從得到由他們的指數的元素不同,實現可能會有所不同。

相關問題