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 :

Trier un array multidimensionnel


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Trier un array multidimensionnel
    Bonjour à tous, je cherche a trier un array multidimensionnel.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    final String[][] tab = new String [membresDao.count().getNombre()][2];
            for(int i = 1; i < membresDao.count().getNombre()+1; i++){
                    //On fait notre recherche
            	Membres noms = membresDao.find(i);
            	tab[i-1][0] = noms.getNom()+" "+ noms.getPrenom(); // Noms
            	tab[i-1][1] = noms.getPasse(); // Passe
            }
            Arrays.sort(tab[0]); // Le problème est ici
            for(String str[] : tab){
            	System.out.println(str[0]);
            	nom.addItem(str[0]);}
    Il me trie pas les membres par leurs noms, mais il mélange tous.
    Comment faire?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je suppose que vous désirez trier en fonction de l'index 0 de la deuxième dimension? Vous devez fournir à Arrays.sort une implémentation de comparator, que vous écrivez vosu même et qui le fait et lui fournir le tableau de base, et non pas juste sa première entrée.

    Grosso modo (non testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Arrays.sort(tab,new Comparator<String[]>(){
        public int compare(String[] o1, String[] o2){
            return o1[0].compareTo(o2[0]);
        } 
    });

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci pour votre réponse rapide

    Je viens de testé le morceau de code, ça fonctionne a merveille.

    Étant débutant, pouvez-vous me définir le fonctionnement de cette méthode?

    Je vous remercie pour votre aide

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    l'interface comparator sert à comparer des éléments entre eux, on peut alors y coder les règle que l'on désire. Arrays.sort a une version qui prend en argument un comparator à utiliser pour trier les éléments. On utilise cette version quand il n'y a pas d'ordre "naturel" dont Arrays.sort pourait se servir ou quand on ne veux pas se servir de cet ordre naturel. Voir la doc de l'api pour plus de détails

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

Discussions similaires

  1. [Tableaux] Récursivité array multidimensionnel
    Par yanice dans le forum Langage
    Réponses: 10
    Dernier message: 30/01/2008, 20h52
  2. [Tableaux] trier un tableau multidimensionnel
    Par chris801 dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 08h43
  3. [Tableaux] trier plusieurs array
    Par djedje37et28 dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2007, 10h44
  4. [Tableaux] Comment trier un array multidimensionel ?
    Par kaptnkill dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2006, 09h31
  5. [Tableaux] Trier un array
    Par borgfabr dans le forum Langage
    Réponses: 11
    Dernier message: 23/04/2006, 15h13

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