-
hashmap ou hashtable
bonjour à tous
je voudrais savoir comment faire pour associer plusieurs valeurs à une meme cle.
je m'explique je vais avoir plusieurs adresses ip (environ 1000) j aimerais les definir en cle
a chaque IP est associée des information je voudrais que chaque info soit prise comme une valeur associée a la clée
je ne sais pas trop quoi utilisé je regarde sur google mais ce n est pas evident a mettre en place
je voudrais donc
cle1(valeur 1,valeur 2,......., valeur n)
avec cle1 qui sera une adresse IP a laquelle on associera ses caracteristiques ( toutes les valeurs)
merci de votre aide
-
Bonjour,
Au lancement de ton application ou se trouveront ces informations?
As tu besoin de gérer une persistance?
N.
-
Bonjour,
Concernant le choix entre HashMap et Hashtable, tu peux aller voir le paragraphe "Optimization techniques in Maps" ici
Sinon, concernant le fait d'associer plusieurs valeurs à une clef, tu as la possibilité d'affecter une ArrayList à une clef plutôt qu'une valeur simple.
Maintenant, si tes informations sont structurées, peut-être serait-il préférable de créer une classe InfoIP ?
-
mes infos sont stockées au départ dans plusieurs fichiers texte
on m avait conseillé d utilisé les table de hashage pour faciliter ensuite l utilisation des IP et des valeurs associées
sur une ligne du fichier texte j ai IP MacAdresse Workgroup Hostname
pour la phase suivante du programme il faut que je recupere les ip Dont la mac adresse sera differente de 00-00-00-00-00-00 et qui n a pas de workgroup
donc je peux faire une fonction qui balaye chaque ligne et qui recupere l ip quand les deux conditions sont reunis
je ne sais pas si une array list serait plus pratique
merci de vos lumières sur le sujet
-
Je te conseille d'utiliser une HaspMap plutôt qu'une Hashtable car celle-ci est plus rapide car non synchronisé. Bien entendu ce conseil n'est valable que si tu n'es pas dans un contexte multithread.
Sinon pour ton problème je te conseille d'utiliser l'interface Map avec en Key l'objet "java.net.InetAddress" qui va te permettre de gérer facilement des adresse IPv4 et IPv6 (dans le futur peut être) et qui surcharge correctement les méthodes equals et hashCode. En ce qui concerne la partie value je verai bien un bean contenant les champs IP, MAC, WORKGROUP, HOSTNAME.
En espérant t'avoir été utile.
N.
-
merci beaucoup je vais mettre tout ça en oeuvre et je vais voir
pur l instant je ne fais pas de multithread j aurais aimé en faire pour reduire le temps d exec de mon appli mais je pense que je vais laissé comme ça
merci pour tout
-
je vois pas trop comment mettre en place le bean
je vois a peu pres pour la key
merci de votre aide