1.7.10 Trier un Array bi-dimensionel



  • Bonjour, ma question n'est pas trop minecraft mais plutôt java mais soit. Voila j'ai une liste:

    double[][] positions = new double[][]{
     { 173, 68, -1731, 2, 0 },
     { -329, 67, -1847, 1, 0 },
     { -616, 60, -1878, 3, 0 },
    …
    };
    

    Et je voudrais que cette liste soit ordonner selon la 4 ème colonne:

    double[][] positions = new double[][]{
                                     { -329, 67, -1847, 1, 0 },
     { 173, 68, -1731, 2, 0 },
     { -616, 60, -1878, 3, 0 },
    …
    };
    ​
    

    Merci d'avance 🙂



  • Selon la 4ème colonne ? Alors que ton tableau n'en a que 2 ?



  • Ba non, il y a 5 colonnes…
    Par exemple **Ligne **2, **Colonne **5(positions[2][5]), il y a la valeur 0



  • Ah, tu le vois dans ce sens toi.

    Malheureusement il n'existe qu'un seul moyen de trier des array, c'est avec Collections.sort et il demande une liste ou une map il me semble.

    EDIT : tu peux aussi utiliser une TreeMap.


  • Moddeurs confirmés

    Si tu passes par des tableaux, tu passes a coté des avantages que peut t'offrir la programmation orientée objet.
    Une TreeMap peut être adapté SEULEMENT SI les éléments de la 4ème colonne sont uniques.



  • Merci, mais j'ai trouver comment trier ma liste, pour ceux que ca interesse:

    java.util.Arrays.sort(positions, new java.util.Comparator<double[]>() {
    
       public int compare(double[] j, double[] k) {
    
           return Double.compare(j[4], k[4]);
    
       }
    
    });
    ```</double[]>

Log in to reply