web-dev-qa-db-fra.com

échec de la nouvelle ArrayList <int> () dans Java

J'ai le code suivant:

List<int> intList = new ArrayList<int>();
for (int index = 0; index < ints.length; index++)
{
    intList.add(ints[index]);
}

Cela me donne une erreur ...

Syntax error on token "int", Dimensions expected after this token

L'erreur se produit sur la ligne commençant par List. Quelqu'un peut-il expliquer pourquoi j'obtiens l'erreur?

24
Alan2

Les génériques dans Java sont sans objet à les types primitifs comme dans int. Vous devriez probablement utiliser types de wrapper comme Integer:

List<Integer> ints = ...

Et, pour accéder à List , vous devez utiliser ints.get(index).

45
nobeh

Vous ne pouvez utiliser qu'un type d'objet dans la section <>, Tandis que vous essayez d'utiliser un type primitif. Essaye ça...

List<Integer> intList = new ArrayList<Integer>();

Vous devez ensuite accéder aux valeurs à l'aide de intList.get(index) et intList.set(index,value) (et également intList.add(value) comme vous essayez de le faire)

10
wattostudios

vous devez utiliser Integer au lieu de int car les listes nécessitent des types d'objet et non des types primitifs. mais vous pouvez toujours ajouter un élément de type int à votre liste d'entiers

4
Adel Boutros

Vous pouvez utiliser les collections primitives disponibles dans Collections Eclipse . Eclipse Collections a List, Set, Bag et Map pour toutes les primitives. Les éléments des collections primitives sont conservés en tant que primitifs et aucune boxe n'a lieu.

Vous pouvez initialiser un IntList comme ceci:

MutableIntList intList = IntLists.mutable.empty();

Remarque: je suis un contributeur aux collections Eclipse.

1
Nikhil Nanivadekar