У меня есть следующие объекты:Java объекта сортировать по типу списку недвижимости
public class Shipping {
String name;
List<Method> methods;
}
public class Method {
String serviceType;
String cost;
}
у меня есть:
List<Shipping> shippings;
Я хотел бы отсортировать доставку по методе, который возвратил самую дешевую стоимость.
Пример:
shipping: "Josh" with 2 methods: "Premium","5" and "Basic","3"
shopping: "Nash" with 2 methods: "Prem", "7" and "Base","2"
сортирует это так:
shopping: "Nash" with 2 methods: "Base","2" and "Prem", "7"
shopping: "Josh" with 2 methods: "Basic","3" and "Premium","5"
мне это нужно, чтобы вернуть метод, который имеет самую дешевую стоимость метода, как и первый, в то время как сортировку также методы, чтобы иметь самый дешевый первый.
Каков наилучший способ сделать это? Я с помощью Java 8, если у него есть лучшее решение, и есть guava
библиотека
EDIT: стоимость является числом с плавающей точкой. Мне нужно оставить его как String, поскольку это объект, который я передаю в REST api и не хотел бы, чтобы клиентская сторона разбирала его.
да - стоимость - поплавок. но я предпочел бы сохранить его как String, поскольку это объект, который я передаю в REST api, и не хотел бы, чтобы клиентская сторона разбирала его. В этом случае - как вы предлагаете написать его? – Dejell
Если это поплавок, оставьте его как поплавок. Почему клиент должен разбирать номер? Сделав его строкой, вы делаете жизнь клиента более сложной: она снова должна преобразовать строку в JSON в число. Во всяком случае, если вы действительно хотите сделать это плохо, то проанализируйте строку при поплавке при сравнении. То есть замените 'Comparator.comparing (Method :: getCost)' на 'Comparator.comparingDouble (метод -> Double.parseDouble (method.getCost())) –
Спасибо - клиентская сторона просто отображает его и не преобразует его , он не делает никаких расчетов. Я где-то читал, что объекты отдыха должны быть обработаны так, чтобы стороне клиента не нужно было снова их редактировать. – Dejell