Variables variables ? - Java - Programmation
Marsh Posté le 27-04-2003 à 15:34:29
Tu utilises une hashmap avec un singleton
Ta hashmap fait un mapping entre une clé (le nom de ta variable) et un objet (ton objet)
De cette manière tu peux récupérer l'objet sur base de son nom et appeller des méthodes dessus.
Si ce n'est pas clair, voir la javadoc de hashmap
Marsh Posté le 27-04-2003 à 16:01:20
J'ai regardé la doc, et j'ai pas trop compris pour hashmap Par contre, il y a aussi hashtable et cç resemble vraiment à ce que je veux faire.
Donc je crée une hashtable, pour chaque "ligne" de la hashtable, j'associe le string et l'objet et ca roule, c'est ça ?
En tous cas merci pour cette réponse si rapide
Marsh Posté le 27-04-2003 à 16:15:51
HashMap et Hashtable c'est exactement pareil à ceci près que si tu fais une appli multi-thread, Hashtable sera plus adaptée alors que si ton appli est mono-thread, HashMap sera plus rapide.
Donc relis la doc passke si t'as compris Hashtable et pas HashMap, c'est qu'il y a un souci
Marsh Posté le 27-04-2003 à 16:21:35
Bon, je vines de faire mon petit truc avec hashtable et ca marche tout comme il faut Merci beaucoup
Pour le coup de la doc, hashtable, j'ai compris grace à l'exemple et hashmap, y a pas d'exemple et comme j'ai la flemme de lire 50 lignes d'explications en anglais, j'ai lu que l'exemple Et pour le coup de la rapidité, je m'en fiche un peu (pas mal meme) pour le projet qu'on doit faire (200 lignes de code maxi en aérant bien)
Marsh Posté le 27-04-2003 à 22:58:43
DarkLord a écrit : Tu utilises une hashmap avec un singleton |
il dit qu'il voit pas le rapport
sinon benj9002, on t'a dit HashMap et Hashtable, c'est pareil. tu remplace l'un par l'autre dans ton code et ça fonctionnera toujours, tant que tu n'a pas besoin de la synchronization qu'apporte Hashtable
Marsh Posté le 28-04-2003 à 07:32:16
les Hashtable c'est mal !
même qu'en j'ai besoinde de synchro, je me fait mes propres blocs de synchro avec une HashMap !
Comment peut-on comprendre la HashTable et pas la HashMap ?
Marsh Posté le 28-04-2003 à 10:09:12
benou a écrit : les Hashtable c'est mal ! |
J'ai juste parcouru la doc en diagonale et y avait un exemple pour hashtable et pas pour hashmap
Marsh Posté le 28-04-2003 à 10:11:06
benj9002 a écrit : |
pour info : HashTable et HashMap hérite tous les deux de l'interface Map. C'est cette interface dont il est réellement nécessaire de connaître le fonctionnement.
Marsh Posté le 28-04-2003 à 10:29:48
benou a écrit : Comment peut-on comprendre la HashTable et pas la HashMap ? |
Très simple : compare les JavaDocs des 2 classes. L'une inclut un exemple, pas l'autre. Dommage, c'est la plus vieille qui est la mieux expliquée...
Et puis quand on n'est pas un fin connaisseur des collections et de l'objet, il faut commencer simple ; alors pour commencer, ce qu'il faut à benj, c'est un exemple simple qui marche sans avoir à lire 10 pages de docs à 3 endroits différents.
Marsh Posté le 28-04-2003 à 11:39:50
BifaceMcLeOD a écrit : |
Et aussi, j'ai pas envie de me faire chier pour un projet noté coeff 0,5
Souvenez vous quand vous avez commencer à programmer (en java ou autre ...) vous lisiez pas 200 pages de docs pour faire System.out.println("Hello World" );
Enfin mon truc marche comme il faut, et j'aurais au moins appris qqch hier
Marsh Posté le 28-04-2003 à 13:45:05
benj9002 a écrit : |
ah? c'est marrant, moi, c'est quand j'ai commence a programme que je lisais les docs...
enfin, Benou, tu pourrais detailler plus le probleme Hashmap/Hashtable ? pourquoi la synchro est pas bonne avec les Hashtable ? ca m'interesse, je me suis jamais pose la question, j'utilise des Hashtable quand je fais du multi thread, mais j'aimerais en savoir plus.
Marsh Posté le 28-04-2003 à 13:50:42
the real moins moins a écrit : il dit qu'il voit pas le rapport |
mais quoi encore ???????,
Marsh Posté le 28-04-2003 à 14:18:00
DarkLord a écrit : |
ben avec le singleton
Marsh Posté le 28-04-2003 à 14:22:04
the real moins moins a écrit : ben avec le singleton |
oui quoi?
Marsh Posté le 28-04-2003 à 14:26:47
DarkLord a écrit : |
ben rien, je ne pense pas qu'il ait specialement besoin d'un singleton pour faire son truc, c'est tout. tu sais bien que j'aime bien te charrier
Marsh Posté le 28-04-2003 à 14:50:52
vous faites comme vous voulez. Moi je venais juste précher la bonne parole...
Marsh Posté le 28-04-2003 à 14:56:53
souk a écrit : |
ben c'est pas très compliqué : chacune des méthodes de la HashTable est synchronizée => un traitement supplémentaire => plus lent.
Quand tu as besoin de synchronization et d'une map, souvent c'est les endroits de sycnhro snot très localisé => je préfère utiliser une HashMap et mettre moi même un bloc synchronized.
De plus, dès que tu veux faire des iteration sur la Map, tu es de toute façon obligé de faire un bloc de synchronization.
Les HashTable ont été gardé parce que trop d'appliaction les utilisaient. Mais maintenant que les HashMap existent, il n'y a plus aucune raison de s'en servir. A la rigueur, si tu veux vraiment une Map synchronizée tu peux passer ta HashMap dans Collection.synchronizedMap()
Marsh Posté le 28-04-2003 à 15:18:53
benou a écrit : |
merci pour ces precieuses precisions re-:jap:
Marsh Posté le 28-04-2003 à 15:23:42
the real moins moins a écrit : ben rien, je ne pense pas qu'il ait specialement besoin d'un singleton pour faire son truc, c'est tout. tu sais bien que j'aime bien te charrier |
Marsh Posté le 28-04-2003 à 16:48:02
ReplyMarsh Posté le 28-04-2003 à 17:04:54
ReplyMarsh Posté le 28-04-2003 à 18:25:07
ReplyMarsh Posté le 28-04-2003 à 18:28:04
the real moins moins a écrit : y'a eu du delete là non? |
Marsh Posté le 28-04-2003 à 18:28:11
benou a écrit : |
Fo pas te vexer benou et puis tes explications sur les hashtables et hashmaps sont très intéressantes (meme si j'ai pas tout compris ) mais ce que je voulais dire (et que BifaceMcLeOD a compris) c'est que pour le coup, j'avais pas envie de lire des tonnes de docs, pas que j'en avait rien a fiche de la doc ... quand je me suis mis au php, j'ai emprunté un bouquin et je l'ai lu de la 1ere à la dernière page...
Le java, pour l'instant, j'en ai juste besoin pour un petit projet pour l'école (qui nous fournit des cours plus ou moins bien faits) et j'avais juste besoin d'une fonction Mais par contre le jour où je veux vraiment me mettre à programmer (en java), je m'achète un vrai bouquin et je lis les docs
Enfin, mon "projet" marche presque et je vous remercie tous pour votre participation
Marsh Posté le 28-04-2003 à 18:36:04
ReplyMarsh Posté le 28-04-2003 à 18:37:33
benj9002 a écrit : |
y a pas de soucis ... mais remplace ta HashTable par une HashMap
les HashTable ca fait has-been !
Marsh Posté le 28-04-2003 à 18:43:28
benou a écrit : |
Ok. Mais c'est pas grave la hashtable, de toutes facons le prof qui corrige il est has-been
Marsh Posté le 27-04-2003 à 15:26:39
C'est peut etre une question con que je vais poser, mais bon ...
J'ai un petit projet en java à faire (sur la théorie des graphes) et j'aurais besoin c'utiliser des variables variables. Pour etre plus clair, j'ai créé plusieurs objets au lancement de mon programme et je veux que le programme se serve des objets selon un ordre défini par le choix de l'utilisateur au lancement.
Donc, comme en php, ca m'aurait bien arrangé d'utiliser des variables variables : l'objet à utiliser portant un nom défini dans un String contenu dasn l'objet précédent.