Long в качестве индекса массива

239
23 сентября 2018, 01:10

Есть фрагмент кода:

long i = 1;
long[] arr = new long[i*6];

При компиляции появляется вот такая ошибка:

Type mismatch: can not convert long to int

Как можно это исправить?

P.S Тип переменной менять нельзя или предложите как можно хранить огромные числа.

Answer 1

Потому что new long[int count] -- это как конструктор массивов. И он принимает int, который весит в памяти 4 байта. Long же весит 8. Надо конвертировать свой long в int. Иначе никак.

    int[] x = new int[(int) yourLongVariable]

Костыль -- можно в строку, потом в число интов.

    long i = 300L;
    String str = Long.toString(i);
    int n = Integer.valueOf(str);

Или же сделать кастом, как все нормальные люди.

    long i = 300L;
    int n = Integer.valueOf((int) i);
READ ALSO
Как остаться на той же JSP после выполнения submit в форме

Как остаться на той же JSP после выполнения submit в форме

Пишу простое web-приложение на JavaНужно после отправки формы в сервлет загрузить ту же JSP с добавлением сообщения об успехе/неуспехе выполнения...

170
Не приходят атрибуты запроса в JSP

Не приходят атрибуты запроса в JSP

Начал изучать сервлеты и JSP, столкнулся с проблемой: в JSP не доходят запросы:

234
Создать один AsyncTask для всех запросов

Создать один AsyncTask для всех запросов

Какие существуют методы, позволяющие использовать один AsyncTask для разных запросов?

169
Ошибка при интернационализации прикладной программы Java

Ошибка при интернационализации прикладной программы Java

Изучаю пример с применением интернационализации с помощью классов ResourceBundle и ListResourceBundle

184