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 :

Affectation d'un tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut Affectation d'un tableau
    Salut


    Je suis besoin de la fonction suivante pour mon projet qui affecte les élement du tableau 2 dans tableau 1 , mais ca marche pas je veux qu'il fait ca par exemple pour t1={1,0,1,0,0,1,0} et t2={0,1,1,0} il me retourne {0,1,1,0}, mais la fonction que j'ai écrit il me retourne {0,1,1,0,0,1,0}.
    Si vous avez une idé pour m'aidé c'est gentil de votre part .




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static int [] affect(int[] t1,int[] t2)
    	 {
    		int temp=0;
    		for(int i=0;i<t2.length;i++)
    		{
     
    			t1[i]=temp;
    			temp=t2[i];
    			t1[i]=t2[i];
    		}
     
    		return t1;
    	 }

    merci d'avance

  2. #2
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    bonjour,

    c'est normal vu que t2 est plus petit que t1 etu tu t'arrêtes à la longueur de t2

    pour changer ça tu peux rajouter:

    t1 = new int[t2.length()];

    par exemple


    par contre je ne comprends pas trop l'utilité de temp?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Par défaut
    Citation Envoyé par Tux++ Voir le message
    Par contre je ne comprends pas trop l'utilité de temp?
    Moi c'est l'intérêt du truc que je ne comprends pas
    Je n'ai peut-être pas compris ce que tu voulais faire, mais d'après ce que j'ai compris il y a 2 solutions "vachement" plus simple:

    Si tu veux que t1 soit une copie de t2 (t1 et t2 pointent vers la même référence, donc toute modification sur t1 ou t2 sera répércutée sur l'autre)
    Si tu veux que t1 ait les valeurs de t2 mais avec une autre référence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.arraycopy(t2, 0, t1, 0, t2.length);
    A noter que tu nepeux pas changer la dimension d'un tableau. Dès que tu crées une instance, a taille est définitive jusqu'à la destruction de l'objet.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu veux que t1 ait les valeurs de t2 mais avec une autre référence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.arraycopy(t2, 0, t1, 0, t2.length);
    A noter que tu nepeux pas changer la dimension d'un tableau. Dès que tu crées une instance, a taille est définitive jusqu'à la destruction de l'objet.
    Il me semble que ça ne marche pas ça. il va recopier les valeurs de t2 certes mais il ne réalloue pas t1, il va juste changer les premières valeurs de t1 avec celles de t2, si on en croit la doc et le test suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int[] t1 = { 1, 0, 1, 0, 0, 1, 0 };
    int[] t2 = { 0, 1, 1, 0 };
     
    System.arraycopy(t2, 0, t1, 0, t2.length);
     
    for (int i = 0; i < t1.length; i++) {
    	System.out.print(t1[i] + " ");
    }
    qui a pour résultat :
    [edit]faute de frappe[/edit]

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Par défaut
    C'est exactement ca, c'est pour ca que j'ai écris

    A noter que tu ne peux pas changer la dimension d'un tableau. Dès que tu crées une instance, la taille est définitive jusqu'à la destruction de l'objet.
    Donc impossible d'augmenter ou de réduire. Dans ce cas, il faut utiliser un Vector ou une ArrayList.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par @Ikey Voir le message
    C'est exactement ca, c'est pour ca que j'ai écris



    Donc impossible d'augmenter ou de réduire. Dans ce cas, il faut utiliser un Vector ou une ArrayList.
    Ce que je voulais dire c'est que malgré cette remarque, cette solution ne répond pas à sa demande, c'est tout. Pour faire une copie de tableau dans une autre instance on peut faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public static int[] copy(int[] tableau) {
        int[] resultat = new int[tableau.length];
        for(int i = 0; i < tableau.length; i++) {
            resultat[i] = tableau[i];
        }
        return resultat;
    }
    Après je ne sais pas si c'est ce que voulait alouha

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut
    Citation Envoyé par Tux++ Voir le message
    bonjour,

    c'est normal vu que t2 est plus petit que t1 etu tu t'arrêtes à la longueur de t2

    pour changer ça tu peux rajouter:

    t1 = new int[t2.length()];

    par exemple


    par contre je ne comprends pas trop l'utilité de temp?
    j'ai étulisé temp pour changé les valeur

  8. #8
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    temp ne sert strictement à rien ici


    pour ce que tu veux faire les réponses ont été données plus haut


    Pour ce qui est de la discussion sur la taille du code, ce n'est pas le sujet ici mais en effet, réduire la taille du code peut mener à des problèmes de lisibilité (ex: abréviation du if en ? mais bon dans un autre contexte si c'est réudire du code inutile alors oui

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut
    Salut

    merci mes amies a l'aide de vos réponse j'ai réalisé finalment ce que je veut encore merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/07/2009, 12h37
  2. problème affectation d'un tableau de char
    Par midotek dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 07/12/2008, 22h50
  3. Affectation d'un tableau
    Par rico3434 dans le forum Débuter
    Réponses: 1
    Dernier message: 19/11/2007, 17h42
  4. Affectation dans un tableau d'objet
    Par kheiro dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/08/2007, 13h13
  5. affectation sur un tableau dynamique
    Par oranoutan dans le forum C
    Réponses: 35
    Dernier message: 27/06/2007, 01h16

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