При попытке отсортировать массив по длине строки его элемента, я столкнулся с ошибкой компиляции. У меня есть набор для начала,
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
Я был бы признателен за любые подсказки для решения проблемы.