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 :

Transformer un tableau de int en tableau Integer ?


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut Transformer un tableau de int en tableau Integer ?
    Bonjour,

    Je cherche a transformer un tableau de int multidimension en tableau de Integer multidimension.
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int[][] tabInt = ....;
    Integer[][] tabInteger = tabInt;
    Et a mon grand regret ni l'autoboxing, ni le transtypage standard ne fonctionnent.

    Auriez vous une solution mis a part le parcours complet du tableau de int pour reconstruire le tableau d'integer ?

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    si t'utilises Java 6, dirige toi vers la classe Arrays, il y a quelques méthodes intéressantes, notamment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    copyOf(U[] original, int newLength, Class<? extends T[]> newType)

  3. #3
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Effectivement cette méthode est plutot simpa. Domage j'ai pas Java6 sur la machine.

    Bon vu que j'avais pas trop de temps a perdre la dessus, j'ai ecrit la méthode de conversion (pas si longue que ca, faut pas non plus deconner )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private Integer[][] convertTab(int[][] tabInt) {
            Integer[][] tabInteger = new Integer[tabInt.length][tabInt[0].length];
     
            for( int i = 0; i < tabInteger.length; i++ ) {
                for( int j = 0; j < tabInteger[0].length; j++ ) {
                    tabInteger[i][j] = tabInt[i][j];
                }
            }
     
            return tabInteger;
    }
    En tout cas, merci de m'avoir fait découvrir cette nouvelle fonctionnalité

    Si y'a d'autre avsi sur le sujet, comme pourquoi l'autoboxing ne fonctionne pas dans ce cas la, je suis prenneur.

    Nico

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah l'autoboxing ne marche qu'entre un type primitif et son wrapper alors qu'un tableau est une adresse mémoire, rien de plus, donc un table n'est pas un type primitif donc pas d'autoboxing...

    Rien de bien sorcier

  5. #5
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Oui c'est dans la logic des choses.
    On aurait aussi pu imaginer quans dans le cas d'un tableau, si simple soit-il, cela aurait pu être implementé dans le compilateur, mais c'est la qu'il doit y avoir l'exception qui ne permet pas une telle modification.

    Enfin c'est pas grave, je garderais la solution Java6 sous le coude

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par N©O
    Oui c'est dans la logic des choses.
    On aurait aussi pu imaginer quans dans le cas d'un tableau, si simple soit-il, cela aurait pu être implementé dans le compilateur, mais c'est la qu'il doit y avoir l'exception qui ne permet pas une telle modification.

    Enfin c'est pas grave, je garderais la solution Java6 sous le coude
    Si tu as résolu ton problème, n'oublie pas de l'indiquer avec le bouton en bas de cette page

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

Discussions similaires

  1. comparer 2 tableau de int avec marge d erreur
    Par jerome86600 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 17/07/2006, 14h31
  2. Procédure stocké, un tableau de int en paramètre
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/06/2006, 10h44
  3. Convertir un caractere d'un tableau en int
    Par Battosaiii dans le forum C
    Réponses: 8
    Dernier message: 21/03/2006, 16h28
  4. aide manipulation tableau de int
    Par capone dans le forum C++
    Réponses: 4
    Dernier message: 30/01/2006, 11h55
  5. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42

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