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

avec Java Discussion :

un tableau qui contient les valeurs du tableau T1 différentes des valeurs du tableau T2 vice-versa


Sujet :

avec Java

  1. #1
    Nouveau membre du Club Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Points : 32
    Points
    32
    Par défaut un tableau qui contient les valeurs du tableau T1 différentes des valeurs du tableau T2 vice-versa
    Bonjour les membres . Toujours dans la création de ma classe utilitaire sur les tableaux
    Je veux créer une méthode qui compare les valeurs d’un tableau T1 a ceux d’un autre tableau T2, si les valeurs de T1 sont différentes des valeurs de T2 alors la méthode insère les valeurs de T1 qui sont différents de T2 dans un nouveau tableau temp1, ensuite compare les valeurs de T2 avec ceux de T1
    Puis insère les valeurs de T2 qui sont différents des valeurs de T1 dans un nouveau tableau temp2

    En fin concatène les tableaux temp1 et temp2 puis retourne un nouveau tableau res.
    Exemple :

    T1 2 20 10 50 90


    T2 15 2 50 99 25


    Temp1 20 10 90


    temp2 15 99 25


    res 20 10 90 15 99 25


    soit i l’indice de T1 et j l’indice de T2
    Quand i=0 on prend le premier élément de T1 puis on le compare a tous éléments de T2 si T1[0] !=T2[j] alors taille (la taille de temp1) s’incrémente puis i passe à 1 ( T1[1] ) si T1[1] !=T2[j] alors taille (la taille de temp1) s’incrémente ainsi de suite.

    Je ne cherche pas de code source mais plutôt des idées ou explications. Mais si quelqu’un présente un code source c’est bon aussi.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par gautier1er Voir le message
    [...]alors taille (la taille de temp1) s’incrémente[...] alors taille (la taille de temp1) s’incrémente ainsi de suite.
    Oublie cette idée, la taille d'un tableau est invariable. Deux solutions, en utilisant que des tableaux :

    1. créer un nouveau tableau plus grand, puis copier les valeurs de l'ancien tableau dans le nouveau, et utiliser le nouveau à la place de l'ancien pour la suite
    2. créer un tableau suffisamment grand pour y mettre le maximum de valeurs possiblement différentes (facile à déterminer) et utiliser un int pour gérer le nombre d'éléments que le tableau contient réellement, et qui constitue en quelque sorte la taille variable du tableau temporaire.


    La première solution consomme plus de ressources (temps et mémoire/gc).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Je m'explique :
    taille est une variable qui s' incrémente dans une boucle lorsque la condition T1 [i]!=T2 [j] est vérifié, ensuite lorsqu'on sort de la boucle , on crée un tableau comme ceci: int temp1[]=new int [taille];

  4. #4
    Nouveau membre du Club Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Voici une méthode qui permet de regrouper les valeurs commun de deux tableaux dans un nouveau tableau que j’ai crée :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public static int [] commun(int t1[],int t2[])
    {
         int compteur=0;
         int taille=0;
         //on declare une variable de type tableau (le tableau qui doit etre retourner)
         int temp[];
     
         //on calcule la taille du tableau qu'on doit retourné
         for(int i=0;i<t1.length;i++)
         {
     
     
             for(int j=0;j<t2.length;j++)
             {
                if(t1[i]==t2[j])
                {
                 taille++;   
                } 
             }
         }
     
              //on affecte la reference d'un tableau de taille element a notre variable 
              temp=new int[taille];
     
         //on insere les valeurs dans le nouveau tableau si ses valeurs son communes pour ces deux tableaux
         for(int i=0;i<t1.length;i++)
         {
     
     
             for(int j=0;j<t2.length;j++)
             {
                if(t1[i]==t2[j])
                {
                 temp[compteur]=t1[i];  
                 compteur++;
                }
             }
         }
     
         return temp;
    }

    J’aimerai procéder de cette façon pour déterminer la taille de temp1
    Mon problème est-que :
    lorsqu’on compare l’élément de T1 à chaque élément de T2 et que T1[i] à une occurrence dans T2[j] (c’est-à dire T1[i]==T2[j] )
    alors i s’incrémente et j revient à zéro (c'est-à-dire on recommence au premier élément de T2). Sinon tant que T1[i] est différent de T2[j] ( T1[i] !=T2[j] ) on continue la comparaison (un élément de T1 comparé a tous les éléments de T2 ) jusqu'à ce que j atteint sa valeur maximale, si la condition T1[i] !=T2[j] est vérifié et que j est a sa valeur maximale alors la variable taille s’incrémente.
    Comment gérer ces deux conditions en même temps par-ce-que la variable taille ne doit pas s’incrémente si T1[i] !=T2[j] seulement mais si et seulement si T1[i] !=T2[j] et j est à sa valeur maximale (à la fin)

  5. #5
    Nouveau membre du Club Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Est ce qu'il y a des personnes ici pour m'aider ?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est ça la question ?
    Citation Envoyé par gautier1er Voir le message
    Comment gérer ces deux conditions en même temps par-ce-que la variable taille ne doit pas s’incrémente si T1[i] !=T2[j] seulement mais si et seulement si T1[i] !=T2[j] et j est à sa valeur maximale (à la fin)
    La réponse est dans la question : tu dit "mais si et seulement si T1[i] !=T2[j] et j est à sa valeur maximale (à la fin)". Donc j==t2.length-1 && t1[i]!=t2[j] à priori.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Nouveau membre du Club Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    J'ai déjà essayé ce code au paravent mais ça ne fait pas ce que je veux

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'ai relu ta question est j'ai l'impression qu'en fait que tu cherches à incrémenter une valeur que si on n'a pas vérifiée une condition pendant une boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    boolean conditionVerifiee=false;
    for(int i=0; i<tableau.length; i++) {
        if ( verifierCondition(tableau[i]) ) {
            faireUnTruc(tableau[i]);
            conditionVerifiee=true; // condition vérifiée au moins une fois
        }
    }
    if ( !conditionVerifiee ) { // on n'a jamais vérifié la condition
       faireUnAutreTruc();
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/04/2017, 00h58
  2. Réponses: 1
    Dernier message: 19/06/2011, 19h48
  3. Réponses: 3
    Dernier message: 09/12/2010, 14h38
  4. Réponses: 2
    Dernier message: 24/10/2008, 09h04
  5. Réponses: 3
    Dernier message: 07/06/2007, 17h03

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