Создать массив длинных

Я пытаюсь создать массив long в java, но eclipse показывает мне ошибку, как показано ниже:

Ниже мой код:

enter image description here

Как я могу это решить?

Не удается создать массив длинного размера в java?

Ответ 1

Массивы длинны в порядке: long[]. Но все массивы int -indexed.. Просто измените long n на int n в объявлении параметра метода, и все будет установлено.

Ответ 2

Для индекса вам нужно использовать int, но не long

Ответ 3

n (емкость массива) должна быть integer not long

Ответ 4

У вас есть мое сочувствие. Мы просматриваем это каждый раз, когда размеры памяти увеличиваются. Существует странное ожидание того, что размеры массива этого не будут увеличиваться параллельно с размерами памяти.

Лучшим решением, вероятно, является создание собственного класса с помощью методов long get(long index) и void set(long value, long index). Он может представлять данные как длинные [10] [1000000000] и инкапсулировать отображение между естественным длинным индексом и фактической парой индексов int.

Ответ 5

Мне нужен массив из 10 ^ 9 элементов

Вы можете создать массив из миллиарда, используя значение int. Сделайте n int, и вы можете создать массив с new long[n] Примечание: это будет использовать 8 ГБ кучи.

Поскольку вы строите все элементы с помощью формулы, вы должны иметь возможность динамически приводить все значения. т.е. создать компонент, который является "виртуальным" массивом, который спасет вас от необходимости генерировать массив из них.

Я указываю на то, что второй цикл, скорее всего, займет минуты в лучшем случае, если k очень мал или может легко занять дни.

BTW: я не вижу весь код, но кажется, что вам не нужно больше, чем k+1 значений, которые могут быть выделены один раз вместо n-k раз.