[java] Problème à définir une variable
Guigui
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
Bonjour,
J'ai une ArrayList avec les premiers nombres premiers. Mais au moment de les récupérer pour les réutiliser je n'y arrive pas. (je débute ...) Voici mon code :
List liste = new ArrayList();
int d=2;
liste.add((int) 2);
liste.add((int) 3);
liste.add((int) 5);
int e= liste.get(d); <---- c'est cette ligne qui pose problème, Eclipse ne me l'accepte pas, il me propose
int e = (int) liste.get(d); mais ça ne marche pas non plus
Le but est de pouvoir utiliser ma variable e comme int.
Y a-t-il une autre syntaxe ?
Faut-il que j'utilise une autre classe que ArrayList ? Vector peut-être ? Quelle est la différence ?
Merci
J'ai une ArrayList avec les premiers nombres premiers. Mais au moment de les récupérer pour les réutiliser je n'y arrive pas. (je débute ...) Voici mon code :
List liste = new ArrayList();
int d=2;
liste.add((int) 2);
liste.add((int) 3);
liste.add((int) 5);
int e= liste.get(d); <---- c'est cette ligne qui pose problème, Eclipse ne me l'accepte pas, il me propose
int e = (int) liste.get(d); mais ça ne marche pas non plus
Le but est de pouvoir utiliser ma variable e comme int.
Y a-t-il une autre syntaxe ?
Faut-il que j'utilise une autre classe que ArrayList ? Vector peut-être ? Quelle est la différence ?
Merci
A voir également:
- [java] Problème à définir une variable
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
1 réponse
Bonsoir,
Tu utilises une syntaxe Java correcte mais démodée (en fait maintenant on écris ça différemment car Java a évolué et propose des syntaxes plus optimisées). Je vais donc écrire comme il est aujourd'hui conseillé d'écrire (par contre il faut que tu aies une JVM capable d'exécuter du java5, sinon ça va ne pas fonctionner).
En fait on utilise ici la généricité (qui consiste à dire quel type d'objets va contenir la liste). Une liste ne peut contenir que des objets, autrement dit des instances de classe. On ne peut donc pas contenir de types primitifs (donc pas d'int), mais on peut utiliser la classe Integer qui va être l'objet contenant un int !
Lorsque l'on fait list.add(2); 2 est un int, mais va être automatiquement casté en Integer.
Enfin, list.get(d) retourne l'instance contenue en d-ième position de la liste (c'est donc une instance d'Integer qui est retournée). Pour récupérer l'int stocké dans cet Integer, tu peux faire int aEnInt = a.intValue();
Cordialement,
Tu utilises une syntaxe Java correcte mais démodée (en fait maintenant on écris ça différemment car Java a évolué et propose des syntaxes plus optimisées). Je vais donc écrire comme il est aujourd'hui conseillé d'écrire (par contre il faut que tu aies une JVM capable d'exécuter du java5, sinon ça va ne pas fonctionner).
List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(3); list.add(5); int d = 2; Integer a = list.get(d);
En fait on utilise ici la généricité (qui consiste à dire quel type d'objets va contenir la liste). Une liste ne peut contenir que des objets, autrement dit des instances de classe. On ne peut donc pas contenir de types primitifs (donc pas d'int), mais on peut utiliser la classe Integer qui va être l'objet contenant un int !
Lorsque l'on fait list.add(2); 2 est un int, mais va être automatiquement casté en Integer.
Enfin, list.get(d) retourne l'instance contenue en d-ième position de la liste (c'est donc une instance d'Integer qui est retournée). Pour récupérer l'int stocké dans cet Integer, tu peux faire int aEnInt = a.intValue();
Cordialement,