Сохраните int в ArrayList и верните его в примитивную переменную int - Java - PullRequest
7 голосов
/ 11 октября 2011

Я получаю сообщение об ошибке и не могу найти способ ее исправить.

Я добавляю int в ArrayList.

int n = 1;
ArrayList list = new ArrayList();
list.add( n );

Далее я пытаюсьположить его в другой int:

grid[ y ][ x ] = list.get(0);

Я также попробовал это:

grid[ y ][ x ] = (int) list.get(0);

Но это не работает, я получаю эту ошибку:

found   : java.lang.Object
required: int
grid[ y ][ x ] = (int)list.get(0);
                              ^

Я надеюсь, что кто-то может мне помочь.

Ответы [ 4 ]

10 голосов
/ 11 октября 2011

Используйте параметр типа вместо необработанных ArrayList:

ArrayList<Integer> list = new ArrayList<Integer>();

Ошибка, которую вы получаете, заключается в том, что вы не можете разыграть Object до int, автобокс ломается там.Вы можете преобразовать его в Integer, а затем автоматически установить в int, но использование параметра типа является гораздо лучшим решением.

7 голосов
/ 11 октября 2011

Используйте ArrayList<Integer>. Когда вы сделаете list.get(), вы получите Integer, на который вы можете позвонить intValue(), чтобы получить int

3 голосов
/ 11 октября 2011

(Integer)list.get(0) сделает свое дело.Автоматическая распаковка преобразует его в int автоматически

0 голосов
/ 21 мая 2019

Основное различие между Array-list и Arrays состоит в том, что Array-list может хранить в нем только объекты, но не примитивные типы данных (в вашем случае целое число). поэтому для решения этой проблемы мы используем ArrayList<Integer> list = new ArrayList<Integer>(); Спасибо.

...