В настоящее время у меня есть программа типа электронных таблиц, которая хранит свои данные в ArrayList из HashMaps. Вы, несомненно, будете потрясены, когда я скажу вам, что это не оказалось идеальным. Накладные расходы, по-видимому, используют в 5 раз больше памяти, чем сами данные.Альтернативы HashMap для хранения данных с высокой эффективностью памяти
This question спрашивает об эффективных библиотеках коллекций, и в ответе использовались Google Collections. Мое слежение «какая часть?». Я читал документацию, но не чувствую, что это дает очень хорошее представление о том, какие классы подходят для этого. (Я также открыт для других библиотек или предложений).
Так что я ищу что-то, что позволит мне хранить плотные данные типа электронных таблиц с минимальными издержками памяти.
- Мои столбцы в настоящее время ссылаются на объекты поля, строки по их индексам, а значения объектов, почти всегда Струны
- Некоторые столбцы будут иметь много повторяющихся значений
- первичные операции должны обновить или удалить записи на основе значений определенных полей, а также добавление/удаление/объединение столбцов
Я знаю варианты, такие как H2 и Derby, но в этом случае я не хочу использовать встроенную базу данных.
EDIT: Если вы предлагаете библиотеки, я также был бы признателен, если бы вы могли указать мне конкретный класс или два в них, которые будут применяться здесь. В то время как документация Sun обычно включает в себя информацию о том, какие операции O (1), которые являются O (N) и т. Д., Я не вижу многого в сторонних библиотеках, и ни одно описание каких классов лучше всего подходит для чего ,
Вот инструмент, который поможет вам измерить объем памяти любой структуры, которую вы выберете: http://code.google.com/p/memory-measurer/, и посмотреть некоторые примеры данных, которые я получил от нее: http://code.google.com/p/memory-measurer/wiki/ElementCostInDataStructures –
Выше ссылки получили brocken –