Задача состоит в том, чтобы подсчитать количество слов из входного файла.
входной файл имеет 8 символов в строке, и есть 10M строк, например:
aaaaaaaa
bbbbbbbb
aaaaaaaa
abcabcab
bbbbbbbb
...
вывод:
aaaaaaaa 2
abcabcab 1
bbbbbbbb 2
...
Это займет 80 МБ памяти, если я загружу все слова в память, но в системе os есть только 60 МБ, которые я могу использовать для этой задачи. Итак, как я могу решить эту проблему?
Мой алгоритм должен использовать map<String,Integer>
, но jvm throw Exception в потоке "main" java.lang.OutOfMemoryError: куча Java-кучи. Я знаю, что могу решить это, установив, например, -Xmx1024m, но я хочу использовать меньше памяти для его решения.