#java #arraylist #int
#java #arraylist #int
Вопрос:
Я получаю сообщение об ошибке и не могу найти, как ее решить.
Я добавляю 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);
^
Я надеюсь, что кто-нибудь сможет мне помочь.
Комментарии:
1. Как выглядит объявление grid ?
Ответ №1:
Используйте параметр типа, а не необработанный ArrayList
:
ArrayList<Integer> list = new ArrayList<Integer>();
Ошибка, которую вы получаете, заключается в том, что вы не можете привести Object
к int
, там происходит сбой автоматической упаковки. Вы могли бы привести его к Integer
, а затем автоматически добавить в int
, но использование параметра type — гораздо лучшее решение.
Ответ №2:
Используйте ArrayList<Integer>
. Когда вы это сделаете list.get()
, вы получите Integer
значение, которое вы можете вызвать intValue()
, чтобы получить int
Ответ №3:
(Integer)list.get(0)
сделает свое дело. Автоматическая распаковка затем преобразует его в int
автоматически
Ответ №4:
основное различие между Array-list и Arrays заключается в том, что Array-list может хранить в нем только объекты, но не примитивные типы данных (в вашем случае integer ). поэтому, чтобы решить эту проблему, мы используем ArrayList<Integer> list = new ArrayList<Integer>();
Thank you.
Ответ №5:
Вы можете создать ArrayList как:
ArrayList<Integer> List = new ArrayList<Integer>();
и затем сделайте то же самое, эта проблема возникает из-за того, что ArrayList может хранить элементы только в форме объектов, потому что он является частью инфраструктуры коллекций в Java, и в нем все хранится в форме объектов. Таким образом, он преобразует примитивный int в его класс-оболочку Integer, что вызывает проблему.