Les Listes ne peuvent contenir des types primitif(byte,char,short,int,long,float et double), il faut utiliser les classe adaptées à la place(Byte,Character,Short,Integer,Long,Float et Double). Donc il faudrait faire:
//Pour ajouter un "int" dans une liste:
list.add(new Integer(i));
...
//Pour lire la liste
int i = ((Integer)liste.get(j)).value();
Cependant depuis java 1.5 pour contourner cette limitation, les type primitifs sont automatiquement convertis dans les objets correspondants. Il est également possible depuis Java 1.5 de préciser le type d'ojets que contient une Collection.
Ici le type d'objets contenus dans ta liste n'étant spécifié, il sont considérés de la classe Object(comme en java < 1.5). Cette classe ne peut donc pas être convertie automatiquement en int.
Il faut donc soit :
- que tu déclare la liste comme contenant des Integer:
List<Integer> MonArrayList = new ArrayList<Integer>();
- que tu précise que l'Object lu dans ton ArrayList est un Integer, qui lui pourra être converti automatiquement en int:
int i = (Integer)MonArrayList.get(j);
Préfère la première solution si tu ne met que des entier dans cette liste.
Partager