CAST ERROR - Java - Programmation
Marsh Posté le 28-03-2005 à 16:12:16
Si t'es en java 1.5 tu peux faire
int machin = (Integer)hashmap.get(...);
Sinon faut le mettre dans un Integer puis
int machin = tonInteger.intValue();
Marsh Posté le 28-03-2005 à 16:13:53
vis à vis de l'edit 2 : j'ai jamais compris ce quiproquo entre cast et transtypage. Retrouver le type réel d'un objet et faire une conversion, c'est très différent. Donc non, en C++, tu ne peux pas surcharger l'opérateur de cast.
Marsh Posté le 28-03-2005 à 16:25:40
Merci pour les reponses.
Je vais utiliser l'objet Integer mais bon java ca me change par rapport au C bref
Integer monInteger = new Integer((Integer)maHashMap.get(MaCle));
si je comprends bien ^^
Marsh Posté le 28-03-2005 à 16:40:34
maintenant la question à 100points : ça serait quoi l'intérêt de faire une copie d'un Integer si c'était possible ?
Marsh Posté le 28-03-2005 à 17:26:53
oui pas bete , j'ai ecris ca un peu vite ^^
et aucun interet pour repondre a taz
Merci annadivx pour tes reponses completes.
Marsh Posté le 28-03-2005 à 18:51:53
Lol je crois que je me suis mal exprimé en disant "et aucun interet pour repondre a taz" ca voulait dire qu'il n'ya aucun interet a faire une copie d'un Integer "
-----------------------------
Sinon une derniere petite question
quand j'utilise sur ma hashmap un keySet() qui me renvoie un Set contenant tous les cle de la hashmap, si je modifie ensuite ce Set retourne il me modifira bien ma hashmap ( en gros ces cles sont des pointeurs vers la hashmap elle meme?)
Marsh Posté le 28-03-2005 à 18:56:46
glod 2 a écrit : Si t'es en java 1.5 tu peux faire |
en java 1.5, tant qu'à faire on fera une map générique =>
Code :
|
Marsh Posté le 28-03-2005 à 19:01:33
arf...
while (1){
maCervelle--;
comprendsPas++;
fprintf(stderr,"aidez moi \n" );
}
Bon c pas grave je vais essayer d'etre plus clair et d'expliciter mon probleme.
disons que j'ai une hashmap contenant de cles et des valeurs
Si je ve faire un random sur une des cles, existe t'il un objet plus adapté que les hashmap? ou c'est possible ???
Marsh Posté le 28-03-2005 à 19:03:20
benou a écrit : en java 1.5, tant qu'à faire on fera une map générique =>
|
Faut des objets pour typer une collection, donc <..., Integer>
Sinon oui modifier le KeySet modifie la HashMap.
Marsh Posté le 28-03-2005 à 19:04:32
je comprend pas : tu dis que tu veux faire un random sur des clefs d'une hashmap mais tu demandes si tu dois utiliser une hashmap ?
Marsh Posté le 28-03-2005 à 19:08:49
glod 2 a écrit : |
ha oui tiens ... ils ont pas géré l'autoboxing sur les generics ... bizarre ...
correction de l'exemple
Code :
|
(compilé et testé pour éviter de raconter des conneries)
Marsh Posté le 28-03-2005 à 19:13:57
En fait benou.
j'utilise une hashmap mais je pe changer si un objet se prete plus a mes attentes...
Sur cette hashmap , je voudrais faire un tirage aleatoire qui me donnerait une des cle de la hashmap. et ensuite modifié la valeur associé a cette clé. Juste ca
Marsh Posté le 28-03-2005 à 19:15:57
je vois pas bien pourquoi tu tires pas directement au hasard parmis les valeurs ... c'est quoi l'intérêt de la clef dans l'histoire ? (dès que tu parles de clef et de valeur, tu parles déjà de Map ...)
Marsh Posté le 28-03-2005 à 19:20:22
en fait je m'explique
ma map contient en clé un type de cellule, et leur nombre qui existe.
Je voudrais en tuer de temps en temps aleatoirement.
Donc fo que je chope une des cellules (clé) de la map, faire une decrementation sur le nombre (valule).
et ensuite renvoyé quelle cellule a été modifié...
voila
Marsh Posté le 28-03-2005 à 19:27:39
ok bon dodo.
Le probleme c'est que en plus je connais pas en avance les types de cellules surtout qu'on peut en ajouter dynamiquement.
Mais bon je vais essayer de reprendre tout depuis le debut. Je me suis trop embrouillé la en fait
Merci
Marsh Posté le 28-03-2005 à 15:49:09
Bonjour,
J'utilise une HashMap dans mon code.
Quand je ve recuperer la valeur d'une des clés , ca me renvoie un object.
Ma clé est un int alors je me di pas de problemes , je vais le caster mais :
monEntier = (int) maHashMap.get(maCle);
c'est refusé
alors comment faire pour le caster???
(j'ai bien été voir l'api java mais bon rien)
si vous avez une idée ce serait cool. merci