Arraylist
Fermé
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
7 févr. 2009 à 00:08
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 11 févr. 2009 à 19:19
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 11 févr. 2009 à 19:19
2 réponses
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
326
7 févr. 2009 à 00:33
7 févr. 2009 à 00:33
Bonsoir,
Tu utilises quelle version de Java ?
La classe ArrayList n'a rien de "spécial", que veux-tu dire par là ?
Cordialement,
Tu utilises quelle version de Java ?
La classe ArrayList n'a rien de "spécial", que veux-tu dire par là ?
List<String> list = new ArrayList<String>();
list.add("Toto");
list.add("Titi");
list.add("Tutu");
Cordialement,
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
7 févr. 2009 à 00:36
7 févr. 2009 à 00:36
enfait on ma dis qu'on pouvais mettre dans une classe ArrayList plusieurs types soit int ou String
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
326
7 févr. 2009 à 00:49
7 févr. 2009 à 00:49
Ok, on a du te parler des types génériques.
C'est simple, certaines classes de Java (notamment toutes les structures de données, comme les List, Map, Set et autres Queue) sont génériques, c'est-à-dire qu'elles peuvent être utilisées pour manipuler de nombreuses classes différentes.
Tout d'abord dans ces classes, tu ne peux manipuler que des instances de classe, pas des types primitifs (pas de int par exemple). Pour manipuler des int, tu fais de la manière suivante :
Les types génériques doivent manipuler des instances du même type. C'est restrictif me diras-tu. Pas vraiment, car tu peux utiliser le polymorphisme pour stocker des instances de classes différentes (on utilisera soit la super-classe commune la plus proche, soit une interface implémentée par toutes tes classes) :
Comme en java tous les objets héritent de la classe Object, tu peux très bien créer une liste d'object pour stocker plein d'instances de type différent (mais dès que tu peux, il vaut mieux éviter).
Cordialement,
C'est simple, certaines classes de Java (notamment toutes les structures de données, comme les List, Map, Set et autres Queue) sont génériques, c'est-à-dire qu'elles peuvent être utilisées pour manipuler de nombreuses classes différentes.
Tout d'abord dans ces classes, tu ne peux manipuler que des instances de classe, pas des types primitifs (pas de int par exemple). Pour manipuler des int, tu fais de la manière suivante :
List<Integer> list = new ArrayList<Integer>(); list.add(5); //java instancie automatiquement la classe Integer System.out.println(list.get(0).getClass().getName()); //affiche java.lang.Integer
Les types génériques doivent manipuler des instances du même type. C'est restrictif me diras-tu. Pas vraiment, car tu peux utiliser le polymorphisme pour stocker des instances de classes différentes (on utilisera soit la super-classe commune la plus proche, soit une interface implémentée par toutes tes classes) :
List<Number> list = new ArrayList<Number>(); list.add(new Integer(5)); list.add(new Float(0.23)); //Integer et Float étendent tous deux la classe Number
Comme en java tous les objets héritent de la classe Object, tu peux très bien créer une liste d'object pour stocker plein d'instances de type différent (mais dès que tu peux, il vaut mieux éviter).
Cordialement,
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
7 févr. 2009 à 00:52
7 févr. 2009 à 00:52
Oui c'est ca merci
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
7 févr. 2009 à 01:03
7 févr. 2009 à 01:03
j'essaye de reproduire le meme code que tu as ecrit en premier, mais ca marche pas ca compile pas
j,ai crée une classe livre
après jai creer une autre classe dans la quelle jai mis
public static void main (String[] params) {
livre a = new livre("gggg");
livre <String> list = new ArrayList <String> (); //ici ca marche pas
} // main
ca marche pas
j,ai crée une classe livre
après jai creer une autre classe dans la quelle jai mis
public static void main (String[] params) {
livre a = new livre("gggg");
livre <String> list = new ArrayList <String> (); //ici ca marche pas
} // main
ca marche pas
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
326
>
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
7 févr. 2009 à 11:43
7 févr. 2009 à 11:43
Bonjour,
Oui, ce n'est pas étonnant, ça ne veut pas dire grand chose ce que tu as écrit.
Il ne faut pas écrire livre <String> list = new ArrayList <String> (); mais :
List<Livre> list = new ArrayList<Livre>();
Cette ligne veut dire "je crée une liste qui va contenir des lignes. Cette liste va être implémentée par une ArrayList".
Cordialement,
Oui, ce n'est pas étonnant, ça ne veut pas dire grand chose ce que tu as écrit.
Il ne faut pas écrire livre <String> list = new ArrayList <String> (); mais :
List<Livre> list = new ArrayList<Livre>();
Cette ligne veut dire "je crée une liste qui va contenir des lignes. Cette liste va être implémentée par une ArrayList".
Cordialement,
k-23
Messages postés
252
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2014
9
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
7 févr. 2009 à 17:47
7 févr. 2009 à 17:47
mais List c'est une class que je dois creer pcq si je marque la meme chose
List<Livre> list = new ArrayList<Livre>();
ca compile pas
List<Livre> list = new ArrayList<Livre>();
ca compile pas
7 févr. 2009 à 00:37
7 févr. 2009 à 00:38