Alternativas do HashMap para armazenamento de dados com eficiência de memória

Atualmente, tenho um programa do tipo planilha que mantém seus dados em um ArrayList do HashMaps. Sem dúvida, você ficará chocado quando eu lhe disser que isso não se provou ideal. A sobrecarga parece usar 5x mais memória do que os próprios dados.

Essa questão pergunta sobre bibliotecas eficientes de coleções e a resposta foi usar o Google Collections.Meu acompanhamento é "qual parte?". Eu tenho lido a documentação, mas não sinto que isso dê uma boa noção de quais classes são adequadas para isso. (Também estou aberto a outras bibliotecas ou sugestões).

Portanto, estou procurando algo que permita armazenar dados densos do tipo planilha com sobrecarga mínima de memória.

Atualmente, minhas colunas são referenciadas por objetos de Campo, linhas por seus índices e valores são Objetos, quase sempre StringsAlgumas colunas terão muitos valores repetidosAs operações principais são atualizar ou remover registros com base nos valores de determinados campos e também adicionar / remover / combinar colunas

Estou ciente de opções como H2 e Derby, mas neste caso não pretendo usar um banco de dados incorporado.

EDITAR: Se você está sugerindo bibliotecas, também agradeceria se você pudesse me indicar uma classe ou duas em particular que se aplicariam aqui. Enquanto a documentação da Sun geralmente inclui informações sobre quais operações são O (1), quais são O (N), etc., não vejo muito disso em bibliotecas de terceiros, nem realmente qualquer descrição de quais classes são mais adequadas para quais .

questionAnswers(10)

yourAnswerToTheQuestion