Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1474 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  vector : problème accès aux caractères d'1 élé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

vector : problème accès aux caractères d'1 élé

n°1749435
esperal
Posté le 20-06-2008 à 16:29:58  profilanswer
 

Bonjour,
 
J'ai construit un vector de CubicCurve qui sont ensuite dessinées.
déclaration du vector : private Vector monTbCourbes;
création du vector : monTbCourbes = new Vector();
dans une boucle, j'ai mis des CubicCurve dans le vector : monTbCourbes.add(new CubicCurve2D.Double(x1, y1, cx1, cy1, cx2, cy2, x2, y2));
 Jusque-là pas de problème, je dessine les différentes courbes avec une boucle : g2D.draw((CubicCurve2D)monTbCourbes.get(i));
mais j'ai dû rajouter (CubicCurve) car sinon il y avait une erreur dans Eclipse monTbCourbes.get(i) était considéré comme un objet et non comme un shape.
 
Ce que je voudrai, c'est pourvoir retrouver pour chaque CubicCurve les points (x1, y1, cx1, cy1, cx2, cy2, x2, y2),
mais je cale.
J'imaginais un truc du genre : monTbCourbes.get(i).getX1  
Ne devrai-je pas pouvoir appliquer les méthodes de la CubicCurve aux éléments du Vector ?
 ou ai-je fait une erreur bête ?
 
Merci de m'aider.
 
P.S. Quelle est la différence entre get(i) et elementAt(i) d'un vector ?

mood
Publicité
Posté le 20-06-2008 à 16:29:58  profilanswer
 

n°1749484
Bidem
Posté le 20-06-2008 à 17:59:14  profilanswer
 

Citation :

mais j'ai dû rajouter (CubicCurve) car sinon il y avait une erreur dans Eclipse monTbCourbes.get(i) était considéré comme un objet et non comme un shape.


C'est normal, la méthode get retourne un Object, donc quand tu sort un élément de la liste, tu dois le caster avant de pouvoir utiliser ses méthodes.
Depuis Java 5, tu peux utiliser le mécanisme de Generics pour "simplifier" ça.
 
elementAt est une méthode qui date de la préhistoire et qui n'est conservée que pour garder la compatibilité, il faut lui préférer get(i)

n°1749517
esperal
Posté le 20-06-2008 à 19:57:33  profilanswer
 

Merci pour ta réponse. Je vais chercher sur internet "generics".

n°1749528
masklinn
í dag viðrar vel til loftárása
Posté le 20-06-2008 à 20:33:10  profilanswer
 

Accessoirement, il est conseillé d'utiliser ArrayList plutôt que Vector


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1749536
esperal
Posté le 20-06-2008 à 20:52:48  profilanswer
 

mais lorsque l'on ne connaît pas le nombre d'objets qui seront créés, ne faut-il pas utiliser Vector ?

n°1749541
masklinn
í dag viðrar vel til loftárása
Posté le 20-06-2008 à 20:59:56  profilanswer
 

Non. Vector est une des collections originelles de Java qui a été rétrofitté par la suite c'est la raison par exemple de la duplication entre Vector#get et Vector#elementAt, Vector#elementAt est la méthode originelle alors que Vector#get est celle qui a été ajoutée à la sortie de Java 1.2 quand ils ont modifié Vector pour hériter de List.
 
ArrayList, elle, est une classe créée spécialement pour le framework Collections dans 1.2, elle a les mêmes cas d'utilisation que Vector mais des performances potentiellement supérieures (Vector est synchronisé dans toutes ses méthodes, pas ArrayList) et une interface plus agréable (puisque cohérente et sans duplications)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1749723
masklinn
í dag viðrar vel til loftárása
Posté le 21-06-2008 à 17:00:09  profilanswer
 

CdE a écrit :

ArrayList est à préférer à Vector dans la majorité des cas, sauf multi-threading et accès concurrentiels à la collection car ArrayList n'est pas thread safe (Mais Vector est plus lourd, oui)


Non, si on a besoin d'avoir une arraylist thread-safe on utilise Collections#synchronizedList pour décorer son arraylist, ou alors on regarde s'il n'y a pas une collection plus adaptée dans java.util.concurrent

 

Il n'y a strictement aucune raison d'utiliser Vector ou Hashtable, dans quelque situation que ce soit.


Message édité par masklinn le 21-06-2008 à 17:00:39

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1749736
esperal
Posté le 21-06-2008 à 18:41:43  profilanswer
 

En vous lisant et en regardant sur : http://www.developpez.net/forums/s [...] p?t=495611
il me semble qu'il faut préférer ArrayList à Vector et Array à ArrayList.
Pour revenir à mon problème de départ, j'ai trouvé une solution en passant par un objet intermédiaire:
shape1 = (CubicCurve2D) petales.get(i);
je peux ensuite récupérer la variable que je voulais : shape1.getX1()
Merci pour tout.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  vector : problème accès aux caractères d'1 élé

 

Sujets relatifs
[resolu] probleme eregi()Problème d'affichage avec Internet Exlorer 6.0 entre autre
Problème d'utilisation du plugin de VLC pour firefoxprobleme pour creer une popup
Problème bizarre avec l'instruction LIKEProblème avec font-color
problème exécution de requêteProbleme de certificat pour dialogue entre une applet et un serveur
probleme de concatenationdefine probleme avec C
Plus de sujets relatifs à : vector : problème accès aux caractères d'1 élé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR