Comment trier un tableau 2D en Java? [dupliquer]

Nov 19 2020

J'ai donc un tableau 2d en Java qui est une chaîne

String a[][] = new String[3][4]
a[0][0] = "John";
a[0][1] = "Doe";
a[0][2] ="B";
a[0][3] ="999";
a[1][0] ="Bob";
a[1][1] ="Smith";
a[1][2] ="Q";
a[1][3] ="420";
a[2][0] ="Name";
a[2][1] ="Here";
a[2][2] ="T";
a[2][3] ="123";

Comment procéder pour trier les lignes par ordre alphabétique?

J'ai essayé Arrays.sort(a), mais cela a simplement renvoyé des erreurs. Et j'ai l'impression que ça va être plus compliqué que ça.

EDIT: La sortie doit être

Bob Smith Q 420 John Doe B 999 Nom ici T 123

J'ai déjà le code pour l'imprimer fonctionne correctement, il suffit de le trier alphabétiquement par lignes.

Réponses

3 RohanKumar Nov 19 2020 at 07:38

Si vous souhaitez uniquement trier les lignes, je pense que cela peut être fait comme ceci:

Arrays.sort(a, (o1, o2) -> {
    String firstO1Element = o1[0];
    String firstO2Element = o2[0];
    return firstO1Element.compareTo(firstO2Element);
});

Cela donne la sortie suivante:

Bob Smith Q 420 
John Doe B 999 
Name Here T 123 
Laugslander Nov 19 2020 at 07:33

Vous pouvez résoudre ce problème avec les flux:

String[] result = Arrays.stream(a)
        .map(inner -> String.join(" ", inner))
        .sorted()
        .toArray(String[]::new);
LuthermillaMuculadosReis Nov 19 2020 at 07:45

Essaye ça

    Arrays.sort(a, (b, c) -> b[0] - c[0]);