В настоящее время у меня есть программа типа электронных таблиц, которая хранит свои данные в ArrayList из HashMaps. Вы, несомненно, будете потрясены, когда я скажу вам, что это не оказалось идеальным. Накладные расходы, по-видимому, используют в 5 раз больше памяти, чем сами данные.
Этот вопрос спрашивает об эффективных библиотеках коллекций, и ответ был использован Google Collections. Мое продолжение - ", какая часть?". Я читал документацию, но не чувствую, что это дает очень хорошее представление о том, какие классы подходят для этого. (Я также открыт для других библиотек или предложений).
Итак, я ищу что-то, что позволит мне хранить плотные данные типа электронных таблиц с минимальными издержками памяти.
- В моих столбцах в настоящее время ссылаются объекты Field, строки по их индексам, а значения - объекты, почти всегда Strings
- В некоторых столбцах будет много повторяющихся значений
- Основными операциями являются обновление или удаление записей на основе значений определенных полей, а также добавление/удаление/объединение столбцов
Я знаю варианты, такие как H2 и Derby, но в этом случае я не хочу использовать встроенную базу данных.
РЕДАКТИРОВАТЬ. Если вы предлагаете библиотеки, я также был бы признателен, если бы вы могли указать мне конкретный класс или два в них, которые будут применяться здесь. В то время как документация Sun обычно включает в себя информацию о том, какие операции O (1), которые являются O (N) и т.д., Я не вижу многого в сторонних библиотеках, и ни одно описание каких классов лучше всего подходит для каких-либо.