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
Bonjour,

Je ne sais pas si quelqu'un peux m'aider je suis débutant en programmation java. Je sais quand même creer de code les instancier et tout je sais faire les chose simple. On m'a dit que la classe Arraylist possède quelque chose d'especial pouvais vous me donner un code comme exemple Merci (un code avec les particularité de cette classe)

merci

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
Bonsoir,
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,
0
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:37
on ma dit que a cause des anciennes version je pas tres bien compris
0
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:38
je utilise le dernier jdk
0
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
enfait on ma dis qu'on pouvais mettre dans une classe ArrayList plusieurs types soit int ou String
0
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
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 :
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,
0
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
Oui c'est ca merci
0
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
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
0
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
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,
0
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
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
0