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 :

Inverser l'ordre d'un tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut Inverser l'ordre d'un tableau
    Bonjour, j'aimerai inverser les données dans un tableau. Je voudrais que ce qui se trouve dans la premiere case soit dans la derniere. Voici mon code. Je comrpends pas pourquoi

    public short[] doEncodage(short[] data){
    short[] data_memory=data;

    for(int i=0;i<data.length;i++){
    data[i]=data_memory[data.length-(i+1)];
    System.out.println("data["+i+"]="+Integer.toHexString(data[i]));
    }

    return data;
    }

    je voudrais obtenir se résultat:
    data[0]=f1
    data[1]=de
    data[2]=bc
    data[3]=9a
    data[4]=78
    data[5]=56
    data[6]=34
    data[7]=12

    mais j'obtiens ceci:
    data[0]=f1
    data[1]=de
    data[2]=bc
    data[3]=9a
    data[4]=9a
    data[5]=bc
    data[6]=de
    data[7]=f1

    est ce que vous pouvez me dire ou est le problème svp?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Par défaut
    tout simplement car quand tu fais sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    short[] data_memory=data;
    tu ne copies pas le tableau.
    Les variables data_memory et data sont des references et non directement des valeurs

    Il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    short[] data_memory=data;
    data = new short[data_memory.length]();

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    merci sa marche nickel, mais je comprends pas pourquoi ça marchait avec les premières valeurs.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Par défaut
    bah tu travaillais sur le meme tableau donc la premiere moitie du tableau va etre correct et la deuxieme sera une copie inversee de la premiere

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Merci de ton aide

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

Discussions similaires

  1. Inverser l'ordre des éléments d'un tableau
    Par nitch01 dans le forum Débuter
    Réponses: 5
    Dernier message: 28/10/2009, 08h18
  2. [C#] Inverser l'ordre des éléments d'une Hashtable
    Par lancer83 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 31/08/2006, 20h03
  3. [Tableaux] inverser clé / valeurs d'un tableau
    Par Yoshio dans le forum Langage
    Réponses: 10
    Dernier message: 21/08/2006, 13h50
  4. inverser l'ordre de lecture des post
    Par serge-07 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 19/04/2006, 10h31
  5. "inverser" les valeurs d'un tableau
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/12/2005, 12h13

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