Is there any particular reason why SXSSFRow is using an array of
SXSSFCells to store the cells in a row? For a sparse spreadsheet, this
would mean having a large array of pointers, most of which are null.

Most of the operations that operate on the rows are also expensive,
such as getFirstCellNum, getPhysicalNumberOfCells, and requires more
lines of code to get the same functionality, such as
FilledCellIterator and getCellIndex.

XSSFRow uses a TreeMap to store its rows, which is memory-optimized
for a sparse spreadsheet, and cuts down on lines of code, and
maintains internal variables that would mean we'd get getFirstCellNum,
getPhysicalNumberOfCells, FilledCellIterator, and getCellIndex for
free.

Right now I want to add a equals method to SXSSFRow, but there aren't
any internal variables I can tie it to. I'd like SXSSFCells[] _cells
to be final, but that isn't possible because the array is manually
resized when creating a cell in a column beyond the capacity of the
array. At the very least this should be a List, which would give us
indexOf, eliminating getCellIndex's custom code--but it seems a
SortedMap/TreeMap is better for memory consumption and sometimes
speed.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to