сортировка длин строк с помощью компаратора

При попытке отсортировать массив по длине строки его элемента, я столкнулся с ошибкой компиляции. У меня есть набор для начала,

Set<String> arraycat = new HashSet<String>();
//add contents to arraycat
String[] array = arraycat.toArray(new String[0]);
//array looks like this now:
//array=[cat,cataaaa,cataa,cata,cataaa]

Я бы идеально хотел отсортировать по

array=[cat,cata,cataa,cataaa,cataaaa]

, поэтому у меня есть компаратор типа

class comp implements Comparator {

    public int compare(String o1, String o2) {
        if (o1.length() > o2.length()) {
            return 1;
        } else if (o1.length() < o2.length()) {
            return -1;
        } else {
            return 0;
        }
    }
}

а затем я вызываю класс по

Collections.sort(array, new comp());

, но затем я получаю две ошибки компиляции:

comp is not abstract and does not override abstract method   compare(java.lang.Object,java.lang.Object) in java.util.Comparator
class comp implements Comparator {
^
testa.java:59: cannot find symbol
symbol  : method sort(java.lang.String[],comp)
location: class java.util.Collections
Collections.sort(array, new comp());
^2 errors

Я был бы признателен за любые подсказки для решения проблемы.

8
задан Alex K 26 December 2011 в 13:34
поделиться