bonjour, j'ai vu que les Vector étaient "déprécié" dans la FAQ, or j'ai besoin de dimensionné une "List" (arraylist a priori) avant de la remplir, comment faire proprement ?
Version imprimable
bonjour, j'ai vu que les Vector étaient "déprécié" dans la FAQ, or j'ai besoin de dimensionné une "List" (arraylist a priori) avant de la remplir, comment faire proprement ?
ArrayList dispose d'un constructeur qui permet d'initialiser avec une capacité : http://java.sun.com/j2se/1.4.2/docs/...ArrayList(int)
Ensuite, ça s'utilise pareil qu'un Vector.
Salut,
Vector n'est pas vraiment déprécié (au sens Java), mais plutôt déconseillé pour deux raisons :
- Son API n'est pas très propre (plusieurs méthodes en double).
- Elle est thread-safe et donc potentiellement moins performante en mono-thread.
De plus avec la "nouvelle" API de Collections de Java 1.2, il est plutôt conseillé d'utiliser Collections.synchronizedList() pour obtenir une instance thread-safe...
La solution est donc bien de passé par une ArrayList, qui fonctionne de la même manière.
a++
en fait niveau algo j'ai besoin d'un truc comme ça :
Je voudrais éviter de "perdre" mon objet en appelant à nouveau un constructeur sur ma liste.Code:
1
2
3
4
5
6
7
8 List l; int taille=...; l.clear(); l.resize(taille); Pour i<-0 à taille-1 Faire l[i]=blabla; FinPour
Enfin quand j'ai essayé avec ArrayList, il m'agrandissait la liste malgré l'appel au constructeur : ex je crée un liste de 10 éléments et j'en obtiens 15.
edit : j'ai un "truc" bizarre dans mon code :
Code:
1
2
3
4 float perCent=1/2; int numInst=0, numJob, pCcurrent; numJob=(int) (perCent * 10);//=0.0 ????
T'es sûr que tu veux utiliser une liste ?
Normalement, on ajoute les éléments d'une List via un add et pas à l'aide d'un indice.
En fait il me faut un tableau de taille variable, une liste correspond pas mal à la logique du programme...(en fait j'ai une liste mais je ne la remplie pas forcément séquentiellement d'où le dimmensionnement)
Pour mon petit problème float*int=0, il y a une solution ?
Tu as la méthode ensureCapacity pour augmenter la taille (et ça recopie l'existant précédent).
la vraie ligne c'est :
numJob=(int) (Float.parseFloat(line[0]) * perCent);
Et Float.parseFloat(line[0]) affiche quoi ?
line[0] c'est "10", la conversion en float, int etc marche. Mais dès que je multiplie par perCent qui vaut 0.5 j'obtiens 0...au lieu de 5
edit : je crois que j'ai trouvé : perCent=1/2; est une division entière donc renvoie 0...mea culpa. Par contre pourquoi quand j'écris float f=0.5; il me demande de caster ... il me dit que c'est un double en fait.
Ca vient de la valeur de "perCent", qui vaut zéro. L'initialisation est faite par un int. Ecrit plutôt :
Ca fonctionnera mieux.Code:float perCent=1/2f;
EDIT : trop lent :aie:
oui merci, par contre netbeans me dit de caster tous mes float pourquoi (il les prend pour des double) ?
Rajoute F juste après le nombre :
0.5F
0.8F
3.22541256F
...