java.lang.String
не подходит для очень больших строк.BigInteger
не подходит для индексации строк размером более 2 ^ 31 - используйте long
.
Для построения строки требуются данные, уже находящиеся в памяти, поэтому две копии.Размер дополнительных буферов, как правило, будет изменен перед созданием, для чего требуется как минимум вдвое больше фактического размера данных плюс дополнительная емкость в буфере.
Кроме того, внутреннее хранилище String
символов (обычно char
, но другиедоступно) может не подходить для ваших данных.Кроме того, вы хотите создать объект BigInteger
вместе с внутренним массивом для доступа к каждому индексу.
Даже java.nio
использует int
для индексации своих буферов (в настоящее время).
Таким образом, вы захотите написать свой собственный BigString
с индексом long
, подкрепленный массивом массивов.Или, скорее, массив (или List
) отображенных в память буферов NIO.