Je ne trouve aucune fonction de tri dans l'API Java pour les vecteurs .Collections.sort
est uniquement pour List<T>
et non pour Vector<T>
.
Je ne veux pas écrire ma propre fonction de tri car j'estime que Java devrait l'implémenter.
Je cherche quelque chose comme:
class ClassName implements Comparator<ClassName> ..
ClassName cn = ..;
sort(cn);
Conformément à la documentation de l'API , Vector
implémente simplement List
, aussi je ne prévois pas les problèmes. Peut-être que votre confusion a été causée par le fait que vous avez déclaré Vector
selon l'ancien style Java 1.0:
Vector vector = new Vector();
au lieu de le déclarer contre l'interface (ce qui est considéré comme une bonne pratique):
List list = new Vector();
Vous pouvez donc simplement utiliser Collections#sort()
pour trier une collection, Comparable
pour définir le comportement de commande par défaut et/ou Comparator
pour définir un comportement de commande externe contrôlable.
Voici un tutoriel Sun sur la commande d'objets.
Voici une autre SO réponse } _ avec des exemples de code complets.
Cela dit, pourquoi continuez-vous à vous en tenir à la classe legacyVector
? Si vous le pouvez, remplacez-le par le ArrayList
amélioré qui a été conçu pour remplacer Vector
il y a plus de dix ans.
Vector implémente List afin que Collections.sort puisse fonctionner.
Selon les spécifications de l'API Java pour la classe Vector
, elle implémente l'interface List
nécessaire pour utiliser la méthode Collections.sort
.
En outre, la plupart des utilisations de la classe Vector
peuvent être remplacées par l’une des implémentations List
de Java Collections Framework, telle que ArrayList
. La classe Vector
est synchronisée. Par conséquent, sauf en cas de besoin réel d'accès synchronisé, il est préférable d'utiliser l'une des autres implémentations List
.
Le vecteur est une liste
Collections.sort (nameOfTheVectorToBeSorted); essayez ceci sur votre vecteur, cela va être trié.
N'oubliez pas d'ajouter implements Comparable<>
dans votre classe:
public class XXXX
implements Comparable<XXXX> {
}
Et redéfinir compareTo()
dans votre classe du type d'objet stocké dans votre vecteur.
J'ai eu ce problème aussi, Eclipse IDE me disait que Collection.sort()
était pour List<T>
uniquement. Je ne pouvais pas le faire fonctionner avant d'avoir fait ce que je viens de dire.