Я делаю программу, в которой есть секционный класс, содержащий три BST, которые состоят из студентов. Существует класс ученика, для которого у ученика есть имя, оценка и идентификационный номер. Каждый BST в классе раздела должен быть отсортирован соответствующим образом, по имени, по количеству баллов и по номеру ID. Я борюсь с переопределением сравнения, чтобы иметь возможность сравнивать по-разному, основываясь на BST, к которому добавляется студент. Мое переопределенное сравнение в настоящее время находится в моей секции студента. Есть ли способ эффективно добавить студента в каждый BST, сортируя их этими тремя различными способами?
В данный момент мой CompareTo сортирует только по имени, поэтому я могу правильно создавать BST, отсортированные по имени, но я не могу 'Кажется, я не могу понять, как сортировать это по-другому, если я хочу. Моя единственная мысль состояла в том, чтобы иметь возможность указать дополнительный параметр в CompareTo в качестве ключа, например «name», «Score» или «ID», с помощью которого я мог бы переключать регистры внутри CompareTo для сравнения различных способов в зависимости от того, какой параметр япрошло это. Однако, к сожалению, я переопределяю CompareTo только для одного параметра, который имеет его супер.