問題は、巨大なエクセルシートを扱えるデータ構造を考え出すことです(このままでは明らかにメインメモリに収まりません)
e が空のセルを表す Excel シートの一部として次を想像してください。
A B C D ...
1 3 9 e e ...
2 e e e e ...
3 e e 5 e ...
4 e e e e ...
5 e e 6 e ...
したがって、データ構造により、Excel シートをメモリに保存できるようになり (Excel シートの値のみがメイン メモリに収まることがわかっています)、次の操作をサポートする必要があります。
getByColumn(Column col);
- 特定の列のすべての値を返します。たとえば、列 C の場合は 5,6 です。
getByRow(Row row);
- 特定の行のすべての値、たとえば 3 と 9 などを ROW 1 に与える
insertCell(Column col, Row row, int value);
- セルの値を挿入または上書きします
getExcelSheet(FileName);
- Excel シート全体を圧縮形式 (データ構造) で提供します。
このための考えられるデータ構造は何ですか? 面接の準備をしていますが、これは宿題ではありません。さまざまな人々からいくつかの洞察を得たいと思います。
感覚的に言うと、Excel シートが 1 テラバイトで、8 GB のメモリがあるとします。1 テラバイトの Excel シートには空のセルがたくさんありますが、値はさまざまなセル全体に広がっています