Здравствуйте, cтолкнулся с такой проблемой, что надо отсортировать ArrayList по двум параметрам, по имени владельца и по цене комнаты
На данный момент вот так выглядит класс комната
class Room {
String Name;
String Surname;
String RoomS;
int RoomN;
int RoomQ;
float cost;
Room(String Name,String Surname,String RoomS,int RoomN,int RoomQ,float cost) {
this.Name=Name;
this.Surname=Surname;
this.RoomS=RoomS;
this.RoomN=RoomN;
this.RoomQ=RoomQ;
this.cost=cost;
}}
Все эти данные считываются из файла. На данный момент у меня получилось лишь сравнить только по цене.А надо чтобы сравнивалось одновременно и по имени владельца, и по цене комнаты.
Так выглядит мой компаратор на данный момент
Collections.sort(r, new Comparator<Room>() {
@Override
public int compare(Room r1, Room r2) {
int result = (int) (r2.cost - r1.cost);
if(result != 0) {
return result;
}
return 0;
}
});
Без понятия, как это сделать.
Добавил потом к классу комнаты
public String getName() {
return Name;
}
И код, который был предложен ниже заработал. !!!! ВНИМАНИЕ !!!! Найдем баг, первую букву он почему-то кидает в конец, а потом идет правильно, решить не знаю как!
Collections.sort(r, new Comparator<Room>() {
@Override
public int compare(Room r1, Room r2) {
int result = (int) (r2.cost - r1.cost);
if(result != 0) {
return result;
}else{
return r1.getName().compareTo(r2.getName());
}
}
});
вам не хватило всего 1 блока else
. Сначала вы сравниваете цену, если вернулся 0 (цены равны), то возвращаете результат сравнения имен (без разницы какой).
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньПотратил полтора дня на то, чтобы найти способ создать файл так, чтобы к нему не имел доступа пользователь ну или имел, но разобрать...
Требуется следующее - пользователь видит строчку "Введите Вашу цель" нажимает на данную строчку, добавляет текст и по нажатию на кнопку "ок"...
голос «против» Помогите развернуть Grails на TomcatЯ с помощью idea создал простое grails приложение, добавил один контроллер и сделал war с помощью команды...
Пытаюсь написать прохождение лабиринта, но при запуске код прохождения падает в NullPointerExceptionСам лабиринт в консоль выводится без проблем