Я думаю, что по нескольким причинам вы пытаетесь создать свою собственную коллекцию. Во-первых, интерфейс списка предполагает длину int. Хотя вы могли бы заставить реализацию списка не быть 0 на основе теории, что удвоило бы вашу потенциальную емкость, это все равно было бы рискованно.
Другая причина в том, что вы, вероятно, смотрите на что-то, не сохраненное в памяти полностью, поэтому кэширование, индексирование, итерации и т. Д. Будут зависеть от внешних ресурсов, и вам может потребоваться только получение по индексу или итератору, а не оба .
Это звучит как огромная проблема распределенных вычислений, и это не то, для чего были разработаны Java-коллекции.
Если, однако, вам просто нужен такой большой индекс (поскольку вы рисуете небольшое количество точек на очень длинной линии), тогда пользовательский интерфейс, поддерживаемый картой (содержащий ключ BigInteger и значение, представляющее содержимое списка), может получить то, что вы хотите. Реализация Map может потребоваться отдельно отслеживать порядок вставки, если вам действительно нужно поведение, подобное списку.