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 :

Convertir un tableau 2d Statique d'entier en un arrayList à 2 dimensions.


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Cyberclown
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cyberclown

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Convertir un tableau 2d Statique d'entier en un arrayList à 2 dimensions.
    Bonjour
    Pour convertir un tableau à une dimension vers un ArrayList ce n'est pas un problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int [] tab = {1,2,3,4,5};
    ArrayList<Integer> tabList = new ArrayList<Integer>();
    for(int i = 0; i < tab.length; i++ ) {
    			tabList.add(new Integer(tab[i]));
    			System.out.println(tabList);
    		}
    System.out.println(tabList);
    Mais pour un tableau 2D comment faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int[][] tab2d = {{1,2,3,4,5},{6,7,8,9,10}};
    ArrayList<ArrayList<Integer>> tab2dList = new ArrayList<ArrayList<Integer>>();

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Un tableau 2D, c'est un tableau 1D qui contient d'autres tableaux 1D.

    Donc, pour chaque tableau 1D contenu, c'est un int[], que tu peux convertir en List<Integer>.
    Ensuite, le tableau qui contient les tableau, c'est un int[][], qu'on peut aussi lire TypeContenu[]. Et tu peux le convertir en List<TypeContenu> ou peut-être List<AutreTypeContenu>. Ce qui ici nous donne, List<List<Integer>>.

    Dans tous les cas tu as converti un Truc[] en List<MachinUnPeuCommeTruc>. Ça se fait toujours pareil, de la même façon.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Cyberclown
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cyberclown

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    Merci pour ta réponse mais concrètement ça donne quoi pour initialiser les tableaux.
    J'ai pensé à ça mais ça ne convient pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int i = 0; i <tab2d.length; i++) {
        for(int j = 0; j < tab2d[i].length; j++) {
    	    tab2dList.add(tab2d[i][j]);
        }
     
    }

  4. #4
    Membre chevronné
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Par défaut
    Bonjour,
    il faut que tu ai également une liste à "2 dimensions" => une liste de liste.
    De plus, tu peux utiliser la méthode Arrays.asList() pour transformer un tableau en liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Integer[][] tab2d = new Integer[][]{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};
    List<List<Integer>> list2d = new ArrayList<List<Integer>>();
     
    for (int i = 0; i < tab2d.length; i++) {
        List<Integer> list = Arrays.asList(tab2d[i]);
        list2d.add(list);
    }
    Un lien vers le code complet.

  5. #5
    Candidat au Club
    Homme Profil pro
    Cyberclown
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cyberclown

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    Bonjour et merci pour ta réponse c'est très clair. Pour l'affichage de la liste tu utilises des notions que je ne connais pas que j'étudirai quand j'aurai un peu de temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    System.out.println("Affichage de la liste");
    list2d.forEach(sublist -> {
        sublist.forEach(item -> {
            System.out.print(" " + String.valueOf(item) + " |");
        });
        System.out.print("\n");
    });

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

Discussions similaires

  1. Convertir un tableau de byte en un tableau d'entier
    Par Gouyon dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/03/2012, 08h12
  2. Réponses: 6
    Dernier message: 05/03/2010, 09h48
  3. variable type tableau (vector) statique / constants
    Par Kaktus dans le forum SL & STL
    Réponses: 5
    Dernier message: 13/10/2005, 22h46
  4. Réponses: 13
    Dernier message: 06/03/2005, 15h21
  5. [C#] Convertir un tableau de byte en Image
    Par goulhasch dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2005, 10h12

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