Arraylist

k-23 Messages postés 290 Statut Membre -  
k-23 Messages postés 290 Statut Membre -
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 1030 Statut Contributeur 329
 
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 290 Statut Membre 9
 
on ma dit que a cause des anciennes version je pas tres bien compris
0
k-23 Messages postés 290 Statut Membre 9
 
je utilise le dernier jdk
0
k-23 Messages postés 290 Statut Membre 9
 
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 1030 Statut Contributeur 329
 
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 290 Statut Membre 9 > Marco la baraque Messages postés 1030 Statut Contributeur
 
Oui c'est ca merci
0
k-23 Messages postés 290 Statut Membre 9 > Marco la baraque Messages postés 1030 Statut Contributeur
 
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 1030 Statut Contributeur 329 > k-23 Messages postés 290 Statut Membre
 
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 290 Statut Membre 9 > Marco la baraque Messages postés 1030 Statut Contributeur
 
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