CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] trier un tableau à 2 dimensions

flash_2001
flash_2001
Niveau 10
22 mai 2011 à 18:57:33

Bonjour,

J'ai un petit problème, j'ai un tableau à 2 dimensions qui contient des chaines de caractères sur chacune de ses dimensions et j'aimerai trier ce tableau alphabétiquement en suivant la première colonne, je m'explique:

De base j'ai ceci
[drtgt][tryry]
[trhrthr][yuyi]
[ghythjt][rtgrtr]
[acrevtr][fretrth]

et je veux ceci
[acrevtr][fretrth]
[drtgt][tryry]
[ghythjt][rtgrtr]
[trhrthr][yuyi]

Est-ce quelqu'un à une idée de comment faire ?

Merci

godrik
godrik
Niveau 30
22 mai 2011 à 19:40:29

Les fonctions de tri t'autorise a definir une fonction de comparaison entre deux elements. I'll faut utiliser ca pour indiquer comment comparer deux tableaux de chaines de caractere.

flash_2001
flash_2001
Niveau 10
22 mai 2011 à 19:56:37

Je débute malheureusement et je dois bien avouer que je n'ai pas compris grand chose à ce que tu viens de me raconter...

hyrulink2
hyrulink2
Niveau 7
22 mai 2011 à 20:22:40

Crée un comparateur qui compare seulement la première case:
Array.sort(monTableau, new Comparator()
{
public intcompare(Object o1, Object o2)
{
return (o1.length == 0 || o2.lenght == 0) ? 0
: o1[0] < o2[0] ? -1 : 1;
}
});

Bunyan
Bunyan
Niveau 17
22 mai 2011 à 21:32:48

Arrays.sort(monTableau) ?

flash_2001
flash_2001
Niveau 10
22 mai 2011 à 23:50:09

Array.sort(tabTemp, new Comparator(){
public int compare(Object o1, Object o2){
return (o1.length == 0 || o2.lenght == 0) ? 0 : o1[0] < o2[0] ? -1 : 1;
}
});

Il me met une erreur sur sort, length, o1[0] et o2[0]
sur sort j'ai The method sort(String[][], new Comparator(){}) is undefined for the type Array, sur length j'ai length cannot be resolved or is not a field
et sur le reste The type of the expression must be an array type but it resolved to Object

Arrays.sort(monTableau) il ne me trie rien il sort une erreur [Ljava.lang.String; cannot be cast to java.lang.Comparable

Bunyan
Bunyan
Niveau 17
23 mai 2011 à 08:31:02

Vu le code, c'est plus que normal.
Tu manipules des objets de type "Object", qui est la méta-classe de Java, et tu lui demandes une longueur.

Tu demandes une longueur à un truc qui pourrait tout aussi bien être un String, un ArrayList, un Vector, une JFrame, une SocketException ...

Après, en lisant la doc, il semblerait que Arrays.sort ne trie pas les String, juste les types primitifs.

hyrulink2
hyrulink2
Niveau 7
23 mai 2011 à 10:48:04

Oui bon tu fait un cast sur o1 et o2 en String[] ou un truc dans le genre, j'ai pas la possibilité de tester le code que je donne mais ça donnerai quelque chose comme ça :
Array.sort(tabTemp, new Comparator(){
public int compare(Object o1, Object o2){
String[] os1 = (String[])o1, os2 = (String[])o2;
return (os1.length == 0 || os2.lenght == 0) ? 0 : os1[0] < os2[0] ? -1 : 1;
}
});

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment