Можно ли создать ArrayList размером больше Integer?

Задача: Нужно прочитать с файла > 3 млрд. строк, а потом работать с ними. Обычно для этого достаточно создать List и доставать строки по индексу. Например:

for(int i=0; i<list.size(); i++){
String str=list.get(i);
....code.....
}

Однако, коллекции Java ограничены количеством индексов, а максимальное количество ячеек равно Integer.MAX_VALUE (2147483647). То есть 3 млрд. строк мы уже не можем положить например в ArrayList<String>. Кроме того, держать такое количество данных в памяти практически не реально (для домашнего ПК). Если каждая строка будет занимать +-30 байт, то в пересчёте на Max Integer нам потребуется 59,9Gb ОЗУ (поправьте меня пожалуйста, если я ошибся в расчётах). Вопрос: Существуют ли какие-то готовые решения для работы с такими объёмами данных?


Ответы (0 шт):