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 ?
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part numJob=(int) (perCent * 10f);
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
la vraie ligne c'est :
numJob=(int) (Float.parseFloat(line[0]) * perCent);
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
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 : Sélectionner tout - Visualiser dans une fenêtre à part float perCent=1/2f;
EDIT : trop lent![]()
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
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
...
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Partager