У меня есть несколько arraylists, каждый из которых содержит данные игрока для конкретной команды. Каждый объект содержит следующие элементы в порядке; Номер Джерси, Имя, Фамилия, Предпочтительная позиция, Голы, Помощь. Пользователь решает, следует ли просматривать данные по целям или передачам, а затем данные отображаются в порядке убывания. Цели и передачи - оба типа данных int.Сортировка ArrayList объектов по конкретному элементу
Я смогу отображать данные в порядке, но то, что я застрял, - это сортировать массивList по одной из этих конкретных характеристик. Поскольку данные из всех команд находятся в разных списках arrayLists, и их нужно сортировать вместе, мне нужно объединить массивы в один мастер-массив, который будет отсортирован? Что касается сортировки, я провел немного исследований, и похоже, мне нужно использовать компаратор? Может ли кто-то помочь в этом, потому что я никогда не использовал их раньше и довольно потерял. Примеры были бы замечательными.
Я приложил несколько фрагментов кода, чтобы надеяться предоставить некоторую ясность.
ArrayList <blackTeam> blackTeam = new ArrayList <blackTeam>();
ArrayList <blueTeam> blueTeam = new ArrayList <blueTeam>();
ArrayList <greenTeam> greenTeam = new ArrayList <greenTeam>();
ArrayList <orangeTeam> orangeTeam = new ArrayList <orangeTeam>();
ArrayList <redTeam> redTeam = new ArrayList <redTeam>();
ArrayList <yellowTeam> yellowTeam = new ArrayList <yellowTeam>();
private void displaystatButtonActionPerformed(java.awt.event.ActionEvent evt) {
//sort arrayList by goals/assists
}
EDIT: Это как мои классы настроены, а также как данные добавляются к ним. Надеюсь, это прояснит некоторые вопросы.
//add data to database
black = new blackTeam(jerseyNum, firstName, lastName, prefPosition, goals, assists);
blackTeam.add(black);
class blackTeam {
int goals, assists;
String jerseyNum, firstName, lastName, prefPosition;
blackTeam (String _jerseyNum, String _firstName, String _lastName, String _prefPosition, int _goals, int _assists) {
jerseyNum = _jerseyNum;
firstName = _firstName;
lastName = _lastName;
prefPosition = _prefPosition;
goals = _goals;
assists = _assists;
}
}
У меня есть один класс для каждой команды.
Я думаю, вы неправильно поняли роль класса. Я на 90% уверен, что вам нужен только один класс 'Team', а не' blackTeam', 'blueTeam' и т. Д. Не все ли они одинаковы друг другу? Если это так, то это будет простой случай объявления 7-го списка, добавление всего из предыдущих 6 и сортировка обычно – Stik
@Stik. Да, я уверен, что вы правы, blackTeam, blueTeam и т. Д. Все одинаковы. Я не совсем уверен, что вы подразумеваете под «сортировкой». Не могли бы вы подробнее остановиться? – ckorvee
Если они все одинаковые, они, я думаю, вы должны добавить свойство 'colour' в один класс, называемый' Team'. См. Мой ответ ниже для «сортировки в обычном режиме» – Stik