New ArrayList <int>() не работает в Java
У меня есть следующий код:
List<int> intList = new ArrayList<int>();
for (int index = 0; index < ints.length; index++)
{
intList.add(ints[index]);
}
Это дает мне ошибку...
Syntax error on token "int", Dimensions expected after this token
Ошибка происходит в строке, начинающейся с List
. Может кто-нибудь объяснить, почему я получаю ошибку?
Ответы
Ответ 1
Обобщения в Java не применимы к примитивным типам, как в int
. Вы, вероятно, должны использовать типы-оболочки, такие как Integer
:
List<Integer> ints = ...
И, чтобы получить доступ к List
, вам нужно использовать ints.get(index)
.
Ответ 2
Вы можете использовать только тип объекта в разделе <>
, тогда как вы пытаетесь использовать примитивный тип. Попробуйте это...
List<Integer> intList = new ArrayList<Integer>();
Затем вам нужно получить доступ к значениям с помощью intList.get(index)
и intList.set(index,value)
(а также intList.add(value)
, как вы пытаетесь сделать)
Ответ 3
вы должны использовать Integer вместо int, потому что в списках требуется объект не примитивных типов. но вы можете добавить элемент типа int в список Integer
Ответ 4
Вы можете использовать примитивные коллекции, доступные в Eclipse Collections. Коллекции Eclipse имеют List
, Set
, Bag
и Map
для всех примитивов. Элементы в примитивных коллекциях сохраняются как примитивы, и бокс не имеет места.
Вы можете инициализировать IntList следующим образом:
MutableIntList intList = IntLists.mutable.empty();
Примечание. Я участвую в коллекциях Eclipse.