ArrayList ?

Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 - 26 avril 2004 à 15:47
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 - 27 avril 2004 à 12:07
Comment ça marche cet ArrayList ? dans l'API ils m'indiquent que le contructueur de base (new ArrayList()) donne une taille nominale de 10 au bazar ... okay mais quand je lui fais un .size() derrière il me retourne 0 et pas moyen de lui faire entrer une donnee ... si j'essaye il m'insulte aussitot de IndexOutOfBoundsException...

11 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
26 avril 2004 à 16:09
Salut,

une ArrayList est comme un tableau dont on peut modifier la taille. La taille par défaut est de 10. Ce qui fait qu'on peut 10 objets dans la liste avant de la redimensionner.
Si tu ne mets aucun objets dedans la taille réelle (au sens nombre d'objet contenus dans la liste) est 0.
Pour ajouter un objet il faut utiliser la méthode add
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 09:13
je l'ai compris comme ça, mais quand j'utilise la méthode add ou set ça veut pas, IndexOutOfBoundsException...
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
27 avril 2004 à 09:25
Bonjour,

Ton code ressemble t'il à qqchose comme cela ?
ArrayList al = new ArrayList();
al.add("lundi");
al.add("mardi");
al.add("mercredi");
al.add("jeudi");
al.add("vendredi");
al.add("samedi");
al.add("dimanche");

for (int i = 0;i<7;i++){
System.out.print(al.get(i));
}
System.out.println(al.size());


Fanny
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 09:37
on va faire plus simple, vous pouvez me dire ce qui cloche dans mon truc ?

ArrayList a=new ArrayList(10);
System.out.println(a.size());
a.add(6,"je suis un morpion a la place 6");
System.out.println(a.size());
System.out.println((String)a.get(0));
a.ensureCapacity(20);
a.add(19,"et moi je suis un cafard a la place 19");
System.out.println(a.size());
System.out.println((String)a.get(19));
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
27 avril 2004 à 09:51
Salut,

c'est tout bête : tu ne peux pas ajouter un élément si sa position est supérieure à la taille de la liste (cf javadoc : méthode add)
Il ne faut pas oublier que c'est une liste d'objets et que par conséquent tant que tu n'as pas rempli la liste avec 5 objets tu ne peux pas mettre un objet en 6ème position. Ce n'est pas un tableau.
Si tu veux mettre des objets à une certaine position il faut utiliser les tableaux.
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 10:01
niark ... ça c'est génant, mon objectif c'est de mettre des objets à une certaine position dans un tableau et de pouvoir modifier la taille du tableau à volonté...
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 10:05
j'ai comme la vague envie de faire ma propre classe array...
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
27 avril 2004 à 10:17
Je pense que le plus simple va être de gèrer le tableau à la main. Si tu as besoin de le redimensionner, je te conseille d'utiliser la méthode arraycopy définie dans la classe System (méthode native, beaucoup plus rapide que les boucles for ou while).
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 11:43
hum ... question bête, c'est quoi une méthode native ?
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
27 avril 2004 à 11:55
c'est une méthode qui fait appel directement aux fonctions de l'OS.
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
27 avril 2004 à 12:07
Okay ... eh bien je crois qu'avec tout ça je peux me lancer, merci à toi kirua12 et aussi à toi HFanny
0
Rejoignez-nous