Comment faire pour initialiser correctement un Comparateur?

J'ai besoin d'écrire une méthode statique dans une classe MinTester qui calcule la "plus petite" chaîne
à partir d'une liste de tableaux de la collection à l'aide d'un comparateur objet:

public static String min(ArrayList<String> list, Comparator<String> comp)

Je ne peux pas utiliser les Collections de la classe pour calculer le minimum.

Voici ce que j'ai jusqu'à présent.

public class MinTester 
{
    public static String min(ArrayList<String> list, Comparator<String> comp)
    {
        String shortest = list.get(0);

        for(String str : list) {
            if ( comp.compare(str, shortest) < 0) {
                shortest = str;
            }
        }
        return shortest;
    }
}

Je n'obtiens pas les erreurs de la méthode, j'ai Donc essayer de le tester dans la main avec cette.
Je reçois ce message d'erreur lorsque vous tentez de passer comp: Variable de comp peuvent ne pas avoir été initialisé

public static void main(String[] args)
{
    //TODO code application logic here

    MinTester s = new MinTester();
    Comparator<String> comp;
    ArrayList<String> list = new ArrayList<>();

    list.add("a");
    list.add("ab");
    list.add("abc");
    list.add("abcd");

    String a = s.min(list,comp);//Error: Variable comp may not have been initialized

    System.out.println(a);
}

Heres où je rencontre mon problème.

J'essaie

Comparator<String> comp = new Comparator<>();//Error:Comparator is abstract, cannot be instantiated
Comparator<String> comp = new MinTester();//Error: MinTester cannot be converted to Comparator<String>

Quelqu'un peut me dire la bonne façon de gérer cette Comparaison? Je ne sais pas si Im juste essayer d'initialiser de manière incorrecte, ou si il me manque quelque chose dans mon MinTester classe.

Vous pouvez lire mon article sur ce (doit être mis à jour bientôt) codeproject.com/Articles/703185/...
Vous n'avez pas défini ce que tu veux dire par "plus petit". Vous impliquer dans votre code que vous voulez dire "le plus court", mais je soupçonne que la définition est un peu plus complexe, comme dans "le plus court, mais en cas d'égalité des voix, le tri en fonction du caractère d'ordre de classement (c'est à dire par ordre alphabétique pour les lettres)". Une fois que vous savez que, mettre en œuvre Comparator<String>.

OriginalL'auteur Reeggiie | 2014-03-02