Используя Java, я хотел бы создать Карту, которая может расти и расти и может быть больше, чем размер доступной памяти.Теперь, очевидно, с помощью стандартного POJO HashMap у нас закончится память, и JVM потерпит крах.Таким образом, я подумал о том, что если карта узнает о нехватке памяти, она может записать текущее содержимое на диск.
Кто-нибудь реализовывал что-то подобное или знает о каких-либо существующих решениях?
Я пытаюсь прочитать очень большой ASCII-файл (скажем, 50Gb) по одной строке за раз,Каждая строка содержит ключ и значение.Ключи могут быть продублированы в файле.Затем я сохраню каждую строку на карте, которая является ключом к списку значений.Эта Карта - объект, который будет только расти и расти.
Любой совет, который очень ценится.
Фил
Обновление:
Спасибо за все комментарии и советы всем.С проблемой, которую я описал, база данных является правильным, масштабируемым решением.Я должен был заявить, что это временная карта, которую нужно создать и использовать в течение короткого периода времени для помощи в разборе файла.В этом случае предложение Майкла «хранить только номер строки вместо фактического значения» является наиболее подходящим.Пометить ответы Майкла как рекомендуемое решение.