В качестве альтернативы реализации Comparable
вы можете передать экземпляр Comparator
методу Arrays.sort()
. Преимущество такого способа состоит в том, что он позволяет вам иметь разные концепции сортировки массива объектов этого типа (скажем, вы можете отсортировать по имени позже, в этом случае вам просто нужна другая реализация компаратора) .
Например:
public class ByApparationsComparator implements Comparator<Expr> {
public int compare(Expr first, Expr second) {
if (first.total_apparitions > second.total_apparitions) {
return 1;
} else if (first.total_apparitions < second.total_apparitions) {
return -1;
} else {
return 0;
}
}
}
Тогда вы можете сказать:
Arrays.sort(exprArray, new ByApparationsComparator());