Partage
  • Partager sur Facebook
  • Partager sur Twitter

controle tableaux par id non par valeur contenu

spécifique étrange pas commun...

Sujet résolu
    17 février 2020 à 0:12:35

    Bonsoir,
    ma demande est vraiment tordu !!!! comme mon cerveau...
    est t'il possible de contrôlé un tableau par sont id et non la valeur dont contiens l'id( je précise bien non ça valeur mais sont id je sais c'est une demande spécifique et particulière mais voila j'ai 2 tableau tab1 qui contient les Indices d'un autre tableau qui corresponde à des valeurs sur un autres tableau 2( je déconne pas, les indices et je cherche à contrôlé l'indice de l'un par rapport au donnée récupéré ou les valeurs de l'autre tableau ( c'est comme contrôlé des numéros par rapport à des lettres impossible me direz vous ? tordu ?! surement que non en fait il y a 3 tableau un référent un avec les indice du référent et l'autre avec des indices trier sur le volet
    dans une autre tableau par la valeur de l'indice du premier tableau je sais, ça peu vous semblez chelou, mais c'est bien ceux que je cherche à faire !

    ex tab1 valeur ->[42,16,3,8,15] <-- correspond a l'indice du tableau 2
     tab2 -> valeur [a, 132,po,48,sd] je n'est pas mis les parenthèse pour ces valeurs ne m'en tenez rigueur !! 

    dans mon exemple le tab1 id 3 correspondrais au résultat "po" du tab2,je sais c'est tordu mais si il n'existe pas de mayen de le faire cette comparaison cela m’obligerais à faire 50 lignes de code en plus sur mon futur soft avec des tableaux en multis dimension, c'est reloue je bloque!
    une fonction ??
    merci de votre aide ou vos orientations sachant que je n'est pas le choix je suis en train de contrôlé des données spécifique d'un tableau trier sur le volet avec des id bien précises correspondant aux id d'un autre tableau et non c'est valeur, (oui je sais c'es ambigu ! mais vous avez bien compris contrôlé des valeurs d'un tableau qui corresponde aux id d'un autre tableaux, (je l'avoue, on peu pas faire plus tordu).

    en tous cas si vous avez compris mon cheminement souhaité merci de votre aide et vos réponses si possible bien sur !

    • Partager sur Facebook
    • Partager sur Twitter
      17 février 2020 à 13:06:59

      tab2[tab1[3]] // Renvoie "po". Enfin... sous réserve de mes commentaires ci-dessous

      Je ferais remarquer que :

      • tu as répété 3 fois la même chose mais on ne comprend pas pourquoi tu veux faire ça. Il y a probablement un moyen plus académique, simple, élégant et performant pour faire ce que tu veux faire plutôt que de contrôler les indices d'un tableau dans un autre tableau. Je pense à des List, Set, Map, etc.
      • Est-ce bien du Java ? Parce que ni ta notation (sans guillemets), ni ton mélange de chaînes et de nombres dans un même tableau (rarissime en Java), ni ta compréhension des indices de tableaux (les indices de tableaux commencent à zéro, donc "po" est l'indice 2), rien de tout cela ne ressemble à du Java.
      • Partager sur Facebook
      • Partager sur Twitter
        17 février 2020 à 17:42:54

        merci de la réponse,oui désolé d'avoir répété mais comme c'est une demande peu commune j'ai préféré le faire pour que ce soit le plus clair possible même si cela semblé répétitif.
        Oui mon code est bien du JAVA. et désole de l'erreur d'indice mentionné dans mon exemple

        en fait j'ai 3 tableaux en tout un tab3 général qui contient un nombre conséquent de valeur (+ de 2000).


        le tab2(string) et rempli avec des valeurs du tableaux3(string) suite à une recherche préalable pour allégé le parcours par la suite et rendre le programme plus rapide que perso il vaut mieux faire une recherche sur une trentaine de valeur que sur des milliers.
        bref.

        mon but et de par la suite pouvoir contrôle et comparé si telle valeur du tab1(int) corresponde a une valeur du tab2(string) et dans le cas ou je tombe sur une certaine valeur(int) correspondante je vais faire telle action suite a la comparaison et et pour une autre valeur(int) cela sera peu etre une autre action ou rien du aucune d'ou le besoin de comparaison par la suite
        et le tableau d'indice a un utilité spécifique qui me permettra de faire telle action ou telle action suite a la comparaison que je vais faire lors de correspondance.voila je sais pas si te parlera plus comme ça mais c'est mon but
        merci

         

        • Partager sur Facebook
        • Partager sur Twitter
          18 février 2020 à 9:31:15

          Disons que gérer des indices tel que tu le fais dans le tab1, c'est très rare dans un contexte de programmation objet.
          En effet, la notion d'objet te permet en principe de gérer les objets eux-mêmes plutôt qu'une sombre référence indirecte (l'indice dans un tableau donnant les indices d'un deuxième dans lequel les objets correspondent peut-être au troisième... pouah !).

          Ca peut arriver dans un contexte web où on est limités par les principes des formulaires HTML ou des URL. Mais même dans ce cas, on essaye de récupérer les objets le plus vite possible et de se débarrasser des références numériques.

          Encore dans ta dernière réponse, tu expliques beaucoup le comment sans vraiment dire le pourquoi. Pourquoi fais-tu tout ça : pour gérer le stock de ton frigo via une base de données, inscrire des étudiants à l'université par formulaire HTML, ou faire une recherche plein texte dans une bibliothèque de bouquins ?

          Si par exemple tu veux constituer un cache pour éviter de charger inutilement un grand nombre d'objets, il existe une classe WeakHashMap tout indiquée.

          • Partager sur Facebook
          • Partager sur Twitter
            18 février 2020 à 16:44:01

            il est vrai que je travaille avec des méthodes ou en procédural(code brut) sans la notion objet pour cette première version pour un rendu plus rapide et que j'optimiserai par la suite.

            dans t'es exemples je prendrais faire une recherche plein texte dans une bibliothèque de bouquin.

            si je trouve A je vais a gauche si je trouve B je ne fait rien, si je trouve C je vais a droite par exemple etc... et A,B,C sont les indices du tableau général qui ont étais mis au préalable dans un tableau plus petit pour essayé de gagné en vitesse de traitement.

            le vrai pourquoi d'utilisé et de rechercher des indices d'un autre tableau viens du fait que comme je doit les comparais et que en fonction de telle donnée1 je fait une actionA en fonction de telle donnée2 je ne fait comme actionR(rien) et que en fonction de telle donnée3 je fait une actionB etc etc..
            je me suis basé sur les indices de mon tableau général qui contient les plus de 2000 valeur pour commencé a structure mon programme du coup je construit mon tab2(string) avec peu de donnée du tableau général dont j'ai récupéré les indices et par la suite si je trouve ces indices je fait ma comparaison et mes actions diverses en fonction de la correspondance et des actions a faire si je trouve une données correspondante ou non.
            après j'ai choisi les indice dans cas d'erreur de frappe pour qu'il ne fasse pas telle action alors que la valeur ne correspond pas et l'erreur sera plus facilement repérable dans le cas ou elle ce présente.

            maintenant je bloque sur le fait de comparai des indices avec des valeur ceux qui est impossible et normal sauf dans certain cas avec un cast c'est pour cela que je venez vous demander si une fonction n'existé pas pour résoudre ce problème.

            la référence a la classe WeakHasMap que tu propose s'utilise surtout avec des objet ceux qui n'est pas encore mon cas si j'ai bien compris les grandes lignes, et plus ça va et plus je sens que je vais être bon pour du N-dimension

            Edit :
            c'est bon, j'ai trouvé !  le problème est résolu ! merci de ton aide et ta patience c'est toi qui m'a mis sur cette voie j'ai juste un petit changement dans un de mes tableaux.
            merci

            +1 pour toi

            -
            Edité par cyrilollier1 18 février 2020 à 17:36:01

            • Partager sur Facebook
            • Partager sur Twitter
              20 février 2020 à 9:21:07

              cyrilollier1 a écrit:

              il est vrai que je travaille avec des méthodes ou en procédural(code brut) sans la notion objet pour cette première version pour un rendu plus rapide et que j'optimiserai par la suite.

              Grosse erreur de méthode : la programmation objet se conçoit avant d'écrire la première ligne de code.
              C'est quasiment impossible à optimiser après-coup, surtout quand on débute.

              cyrilollier1 a écrit:

              le vrai pourquoi d'utilisé et de rechercher des indices d'un autre tableau viens du fait que comme je doit les comparais et que en fonction de telle donnée1 je fait une actionA en fonction de telle donnée2 je ne fait comme actionR(rien) et que en fonction de telle donnée3 je fait une actionB etc etc..

              C'est exactement la description de ce que fait une Map en Java, les valeurs de la clé étant des objets que tu pourrais appeler Action.

              cyrilollier1 a écrit:

              après j'ai choisi les indice dans cas d'erreur de frappe pour qu'il ne fasse pas telle action alors que la valeur ne correspond pas et l'erreur sera plus facilement repérable dans le cas ou elle ce présente.

              Ca aussi, c'est beaucoup plus simple à gérer avec une Map : si la clé n'est pas dans la Map, on ne fait rien.

              cyrilollier1 a écrit:

              maintenant je bloque sur le fait de comparai des indices avec des valeur ceux qui est impossible et normal sauf dans certain cas avec un cast c'est pour cela que je venez vous demander si une fonction n'existé pas pour résoudre ce problème.

              Eh bien oui, voilà pourquoi il vaut mieux travailler avec des objets qu'avec des entiers.

              On est tous passés par là, ne t'en fais pas.

              • Partager sur Facebook
              • Partager sur Twitter

              controle tableaux par id non par valeur contenu

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown