If you need a separate object for each row, and you want them to be as compact as possible, use byte arrays. This will be 1 byte per char versus 2, and you will not have the overhead of the String header (which adds probably 32 bytes per object).
But, of course, you cannot use any String methods on them without first converting to String.
But if you really want to save space, save the lines back to each other in several large arrays, with "doping vectors" to find individual lines.
source share