Juste un problème mineur avec Arraylist
. Je veux trier un ArrayList<Client>
par nom.Comment implémenter un comparateur utilisant des génériques?
Class Client{ String name; int phonenumber ..}
Ce code effectue le travail, mais je vais avoir un avertissement du compilateur: « utilise des opérations non vérifiées ou dangereuses ». Quel est le problème?
public void sortByName(){
Collections.sort(ListofClients, new NameComparator());
}
Mon comparateur ressemble à ceci:
public class NameComparator implements Comparator{
public int compare(Object client1, Object client) {
String name1 = ((Client) client1).getName();
String name2 = ((Client) client2).getName();
return name1.toUpperCase()).compareTo(name2.toUpperCase();
}
}
Si j'utilise « implements Comparator<Client>
» j'obtiens une erreur: « NameComparator n'est pas un résumé et ne remplace pas la méthode abstraite comparer (client, client) en java.util.Comparator. mon comparateur ne va pas? Désolé pour cette question noob, nouveau java
juste retourner le résultat tout de suite :) – willcodejavaforfood
@bruno Notez que votre comparateur ne gère pas les noms nuls. – McDowell
Pourquoi devrait-il si un objet Client valide ne peut pas avoir un nom nul. –