bonjour tout le monde,

voilà mon pb, j'ai un JXTreeTable que j'aimerai trier. Vu que le modèle de donnée est un arbre, mon but est de trier cet arbre.

Première question : existe-t-il une méthode déjà faites pour trier un arbre selon un critère ?? en tout cas j'ai pas trouvé.

Pour résumer mon arbre de donnée :
J'ai un arbre de profondeur max 2. Certains noeuds n'ont pas de fils. Au max, ma treetable a 500 éléments.

-- côté perf --
Plutôt que de trier à chacune des mises à jour de mon arbre, je pensais trier une bonne fois pour toute quand l'utilisateur choisit l'action de trier et ensuite insérer les éléments qui arrivent "à la bonne place" (du coup perdre un peu plus de temps à chaque l'insertion/suppression mais gagner en tri)
Déjà est-ce déconnant d'agir comme ça ?

-- côté implémentation pour le tri d'arbre --
idée d'implementation 1
1 - je mets tous les fils de la racine dans une liste temporaire
2 - je trie la liste avec les tri "standard" des collections (Java.util.Collection et ses algos de sort)
3 - je détruis mes noeuds et je les re-crée en se basant sur ma liste triée
4 - je répète l'opération pour chacun des noeuds qui a des fils (sachant que tous les noeuds intermédiaire n'auront pas forcément de fils)

+ : rapide/facile à coder, sur, l'algo de tri est forcément performant
- : en terme de gestion de donnée ça me semble un peu lourd, si le tri est rapide qu'en est-il de la reconstruction de tout mon arbre ? par contre je ne manipule des noeuds qu'une fois pour toute (à la recréation de mon arbre).


idée d'implementation 2
1 - Je trie directement les noeuds de mon arbre avec un algo "fait maison"
2 - je répète l'opération pour chacun des noeuds qui a des fils

+ : ça me semble beaucoup plus léger et "naturel" comme manière de faire
- : je suppose que les algos de tri du package collections seront meilleurs que les miens. Autre chose, Je manipule beaucoup les noeuds (suppression/insertion à la bonne place) ... est-ce plus couteux que de tout détruire et de tout reconstruire ?


Je ne demande pas une implémentation, c'est juste pour discuter sur des méthodes de tris d'arbre (maintenant si quelqu'un me le fait, moi ça me va aussi ). Je reste ouvert à toutes autres possibilités