Во-первых, в sortimi(Studenti[] std)
просто объявите perk
типа Studenti
вместо int
:
Studenti perk = null;
Кроме того, вы, кажется, дважды объявили метод sortimi(Studenti[] std)
,Вам придется избавиться от одного из них.
Наконец, вы не можете сравнивать экземпляры Studenti
, используя оператор >
.Вам придется определить какой-то метод сравнения или сортировать по полю.Например:
public class Studenti {
...
public boolean precedes(Studenti other) {
// logic for deciding order for students
}
}
В качестве альтернативы (и, желательно, на мой взгляд), вы можете объявить один или несколько статических вложенных классов Studenti
, которые реализуют Comparator<Studenti>
интерфейс .Затем для сортировки массива вы можете просто вызвать Arrays.sort()
и передать экземпляр соответствующего класса компаратора.Преимущество этого подхода заключается в том, что у вас может быть несколько классов, которые сортируются по разным критериям (например, имя ученика только по отметке, а затем по имени ученика).Причина, по которой я рекомендую статический вложенный класс, заключается в том, что ваш класс Studenti
не обеспечивает механизм доступа внешних значений к внешним классам.Если вы сделали поля final public
вместо private
или если вы предоставили методы доступа, вы могли бы разделить классы компаратора на классы верхнего уровня и сохранить класс Studenti
достаточно обтекаемым.