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 :

[HASHMAP] re incrementation clef


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut [HASHMAP] re incrementation clef
    Bonjour,

    J'ai une hashMap qui possède comme clef des entiers. Je dois après, suppression d'un des couples clef/valeur re incrémenter toute les clefs.

    Voila ce que j'ai fait (setmapMaison étant le setter de la map mapMaison):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Integer keyInc = 1;
                Map<Integer, String> newMapMaison = new HashMap<Integer, String>();
                for (Entry<Integer, String> objet : mapMaison.entrySet()) {
                    newMapMaison.put(keyInc, objet.getValue());
                    keyInc++;
                }
                setmapMaison(newMapMaison );

    N'y aurait il pas une méthode un peu plus propre ??


    Merci d'avance !

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    C'est étonnant ce que tu essayes de faire.
    Par définition une cle n'est pas censée être modifiée.
    En outre, je pense que HashMap n'est pas adapté à ce que tu essayes de faire.

  3. #3
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Que me conseillerais tu a la place ?

    Merci

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Katachana Voir le message
    Que me conseillerais tu a la place ?
    Que cherches-tu à faire avec tout ceci ???
    Pourquoi veux-tu changer les couples clef/valeur ?

    a++

  5. #5
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    En fait le principe est le suivant :

    J'ajoute des maisons ( correspondant a une chaine de caractère). Chaque maison à un identifiant (de 1 à .... en fonction du moment ou elle a été ajouté). Cela permet la modification/suppression d'une maison par rapport à son ID (exemple d'argument de suppression => SUP3 ou 3 est le numéro d'identification de la maison). Dans le cas ou l'on supprime la maison d'ID=3 , il faut ré incrémenter les IDs de sortes a toujours avoir une suite logique des IDs.


    Dans un souci de performances, j'ai opté pour une HashMap

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Dans ce cas pourquoi utiliser une Map ?
    Une Liste ferait parfaitement l'affaire !

    a++

    [edit]
    Dans un souci de performances, j'ai opté pour une HashMap
    Pourquoi ? Comment en es-tu arrivé à cette conclusion ?

  7. #7
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    En fait j'ai utilisé les Map, classe qui a été réalisé par un collègue .

    Une liste+ un Integer que l'on incrémente (pour l'index) serait plus performant ?

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Katachana Voir le message
    En fait j'ai utilisé les Map, classe qui a été réalisé par un collègue .
    Heu... Map et HashMap font partie de l'API standard...

    Citation Envoyé par Katachana Voir le message
    Une liste+ un Integer que l'on incrémente (pour l'index) serait plus performant ?
    Ce serait surtout plus logique d'utiliser une liste.

    Les List (et ArrayList en particulier) permettent de gérer des listes d'éléments, ordonné via un index. Bref cela semble correspondre à ce dont tu as besoins (des éléments ordonnées par un index).

    Les Map sont plutôt utilisées pour gérer des couples clef/valeur, ce qui n'est apparemment pas vraiment ton cas ici...


    Quand aux performances, il faut bien analyser le problème avant d'envisager des solutions... sinon cela ne sert à rien !


    Utilises les objets les plus adaptés à ton besoin, ce qui permet d'avoir un code propre sans bidouille tel que ta duplication de Map. En cas de problème avéré on a un code propre sur lequel travailler...


    a++

  9. #9
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci du conseil

    Pour la classe avec les Map, je voulais dire que les méthodes de la classe ont été implémenté avec l'utilisation de Map et hashMap et non de liste comme tu le conseil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2011, 15h54
  2. [Tableaux] incrementer les clefs de mon tableau
    Par kaking dans le forum Langage
    Réponses: 6
    Dernier message: 07/05/2009, 15h06
  3. [TRIGGER] insertion avec clef auto-increment dupliquer
    Par TheBlackReverand dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 27/03/2009, 12h06
  4. test de clef HashMap
    Par boubat dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 04/12/2008, 16h26
  5. clef de HashMap
    Par yozine dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 09/08/2007, 20h23

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