IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Mise à jour HashMap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1
    Par défaut Mise à jour HashMap
    Bonjour,

    j'ai définit une variable "table" de type hashMap, parce que en fait dans cette table je vais avoir des clès qui sont des adresses réseaux "src" et pour chaque adresse , les valeurs sont " num seq" , "service ", et "Vtime", à un moment de mon implémentation, je dois mettre à jour ma table, comment?, en fait quand je recois des paquets je dois tester le contenu de ce paquet par rapport aux clés et valeurs de "table", sachant que le type de la valeur " service" est BitSet , c'est à dire un vecteur de Bit ,
    mon problème je vois pas comment mettre à jour ma table sachant que j'ai plusieurs testes à effectuer sur le " service " déjà", c'est à dire quelle est la fonction qui permet d'abord d'ajouter une entrée biensur avec ses valeurs à un "hash Map" , parce que moi je teste la source , si c'est une nouvelle source avec la valeur "service " différent ", je rajoute cette sourcé à mon "hashMap", et s'il s'agit de la même source mais qui offre un service différent " service " , comment je mets à jour les vleurs de cette source sachant que "service " est de type BitSet.

    j'espère que j'ai bien clarifié le problème

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    Ton problème n'est pas claire du tout, sache cependant que si tu modifie la clé, il faudra dans un premier temps retirer l'ancienne clé de la HashMap, et en remettre une nouvelle.

    Si ta clé est une composition d'objet, il faut que tu redéfinisse la méthode d'égalité equals(Object obj), ainsi que la méthode int hashCode(), sans cela l'élément ne pourra pas être retrouvé dans la HashMap. Regarde voir la documentation de la classe Object pour voir les conditions que doit remplir hashCode() pour être valide.

    Pour faire simple si equals retourne vrai sur un objet, cette objet doit avoir le même hashcode que l'objet courant, l'inverse n'est pas vrai.

  3. #3
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    - Pour mettre a jour une entree dans un map (HashMap ...) il faut utiliser les fonctions disponibles pour les maps (get,put,....)

    - En ce qui concerne comment savoir si c'est une nouvelle entree ou une entree existante tu dois tester dans ton map, et selon si cet objet existe ou non tu vas faire une mise a jour ou une insertion

    - Pour manipuler tes donnees, tu dois definir une structure de ton map par exemple:
    <src, <numSeq, service, vTime>>

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Par défaut Bonjour
    Ce que je comprends :
    Les clés (ou adresses réseaux) sont de type String et les valeurs sont structurées dans un objet (de type Paquet dans mon exemple) possédant les 3 attributs num_seq, service (de type BitSet) et vtime.

    La méthode d'ajout pourrait donc ressembler à celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public synchronized void addPaquet(HashMap paquets, String src, Paquet obj) {
        if (paquets.containsKey(src))
            ((Paquet)paquets.get(src)).getService().or(obj.getService());
        else
            paquets.put(src, obj);
    }

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  2. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 08h11
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo