私たちは、このような既知のサイズのテーブルを表す入力値があるとします。エレガントかつ効率的な方法
- 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()
のようないくつかのプロバイダから到着し、我々は逆方向に行くことができないと仮定します。
3つの構造に入ってくるデータを置くために(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
いくつかのスイッチ/デリゲートを使用するか、または単にすべてのデータと抽出部分をバッファする方が良いだろう(すべての値が同じタイプのを持っていると仮定し、整数と言うことにします)?
リアルタイムで適切な構造のデータを収集する必要はないと仮定します(データ全体をバッファリングすることができますが、私は効率的なソリューションを探します)。
この問題の現実世界のデータは、サイズが約500x500の3倍の「マップ」で、重要な場合は.xlsファイルから読み込まれます。