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 :

Un tableau dont les clefs changent


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Par défaut Un tableau dont les clefs changent
    Bonjour,

    Je suis chargé de créer une boucle for avec une espèce de tableau qui à chaque itération décrémente ces clefs.

    Par exemple à la première itération le premier element est monTableau[0], à la deuxième cet élèment est accèssible par monTableau[-1]

    J'ai tout de suite pensé au HashMap, le soucis c'est qu'à chaque itération je dois recréer un HashMap et qu'il y a beaucoup d'itération; du coup les performances ne sont pas bonnes. J'aimerais ne modifier que les clefs mais je crois que ça n'est pas possible avec le HashMap

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Une idée pourrait être de ne changer les clés qu'après toutes les boucles ?

    Après tout si tu décrémentes tout, c'est sémantiquement équivalent à ne décrémenter rien. Tout ce que tu as besoin de savoir c'est le décalage "théorique" qui est commun à tous les éléments, et que tu peux changer à chaque boucle.

    Éventuellement tu peux te faire une petite classe pour gérer tout ça une fois pour toutes, indépendamment du reste de l'algo.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Par défaut
    En fait, le but est un peu compliqué à expliquer mais il faut décrémenter au fur et à mesure de la boucle. En gros, l'utilisateur a la possibilité de créer un petit algorithme qui utilise ce tableau préformaté et l'algorithme devra s'exécuter à l'identique sur de nombreux items.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Tu pourrais faire une classe qui gère un "tableau acceptant les index négatifs" et qui fonctionnerait avec un tableau normal qui ajoute un décalage à chaque fois, genre l'index zéro est en fait stocké en position 200. Ce qui te permet de mettre l'index -200 en position 0.

    Il te resterait à réallouer et recopier un nouveau tableau à chaque fois que tu as besoin d'indexer en dehors des limites prévues, mais :
    - c'est inévitable.
    - ça devrait pas arriver trop souvent.

    (Note : le gain par rapport à une Map dont tu réallouerais simplement les valeurs d'une clé à l'autre, n'est en réalité pas très significatif. Je conseille de rester en Map)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2014, 11h10
  2. Réponses: 2
    Dernier message: 01/04/2010, 10h51
  3. Tableau dont les éléments sont des tableaux
    Par tpdm dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/01/2010, 19h02
  4. Réponses: 3
    Dernier message: 20/08/2007, 17h30
  5. Réponses: 13
    Dernier message: 06/06/2007, 19h58

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