Variables variables ?

Variables variables ? - Java - Programmation

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.
 
 :jap:

Reply

Marsh Posté le 27-04-2003 à 15:26:39   

Reply

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


---------------
Just because you feel good does not make you right
Reply

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 :jap:

Reply

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 [:ddr555]


Message édité par Taiche le 27-04-2003 à 16:16:24

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

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) :whistle:

Reply

Marsh Posté le 27-04-2003 à 22:58:43    

DarkLord a écrit :

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

il dit qu'il voit pas le rapport  :sarcastic:  
 
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 ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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 ?  :??:


Message édité par benou le 28-04-2003 à 07:33:06

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-04-2003 à 10:09:12    

benou a écrit :

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 ?  :??:  


 
J'ai juste parcouru la doc en diagonale et y avait un exemple pour hashtable et pas pour hashmap :ange:

Reply

Marsh Posté le 28-04-2003 à 10:11:06    

benj9002 a écrit :


 
J'ai juste parcouru la doc en diagonale et y avait un exemple pour hashtable et pas pour hashmap :ange:  


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.

Reply

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.


Message édité par BifaceMcLeOD le 28-04-2003 à 10:32:20
Reply

Marsh Posté le 28-04-2003 à 10:29:48   

Reply

Marsh Posté le 28-04-2003 à 11:39:50    

BifaceMcLeOD a écrit :


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.


 
 :jap: Et aussi, j'ai pas envie de me faire chier pour un projet noté coeff 0,5 :D  
 
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 :)

Reply

Marsh Posté le 28-04-2003 à 13:45:05    

benj9002 a écrit :


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" );  


 
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.

Reply

Marsh Posté le 28-04-2003 à 13:50:42    

the real moins moins a écrit :

il dit qu'il voit pas le rapport  :sarcastic:  


 
mais quoi encore ???????,


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-04-2003 à 14:18:00    

DarkLord a écrit :


 
mais quoi encore ???????,

ben avec le singleton


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-04-2003 à 14:22:04    

the real moins moins a écrit :

ben avec le singleton


 
oui quoi?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-04-2003 à 14:26:47    

DarkLord a écrit :


 
oui quoi?

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  :wahoo:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-04-2003 à 14:50:52    


vous faites comme vous voulez. Moi je venais juste précher la bonne parole...

Reply

Marsh Posté le 28-04-2003 à 14:56:53    

souk a écrit :


enfin, Benou, tu pourrais detailler plus le probleme Hashmap/Hashtable ? pourquoi la synchro est pas bonne avec les Hashtable ? ca m'interesse


 
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()

Reply

Marsh Posté le 28-04-2003 à 15:18:53    

benou 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()


 
 :jap:  
 
merci pour ces precieuses precisions re-:jap:

Reply

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  :wahoo:  


 
:)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-04-2003 à 16:48:02    

[:dawa]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-04-2003 à 17:04:54    


 
 :pt1cable:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-04-2003 à 18:24:40    

[:ban]

Reply

Marsh Posté le 28-04-2003 à 18:25:07    

y'a eu du delete là non? :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-04-2003 à 18:28:04    

the real moins moins a écrit :

y'a eu du delete là non? :o


 
 :??:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-04-2003 à 18:28:11    

benou a écrit :


vous faites comme vous voulez. Moi je venais juste précher la bonne parole...


 
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 :ange: ) 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 :hello:  
 
Enfin, mon "projet" marche presque et je vous remercie tous pour votre participation :jap:

Reply

Marsh Posté le 28-04-2003 à 18:36:04    

nraynaud avait posté un truc


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-04-2003 à 18:37:33    

benj9002 a écrit :


Fo pas te vexer benou ;)


y a pas de soucis ... mais remplace ta HashTable par une HashMap ;)
les HashTable ca fait has-been !

Reply

Marsh Posté le 28-04-2003 à 18:43:28    

benou a écrit :


y a pas de soucis ... mais remplace ta HashTable par une HashMap ;)
les HashTable ca fait has-been !


 
Ok. Mais c'est pas grave la hashtable, de toutes facons le prof qui corrige il est has-been :D  :whistle:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed