У меня есть следующий класс:
public class Offer {
private final OfferType type;
private final BigDecimal price;
// constructor, getters and setters
}
и тип enum:
public enum OfferType {
STANDARD, BONUS;
}
Мой пример использования: при наличии списка предложений в качестве входных данных я хочу отфильтровать все стандартные, кроме самого дешевого. Так что для следующих входных данных
List<Offer> offers = Arrays.asList(new Offer(OfferType.STANDARD, BigDecimal.valueOf(10.0)),
new Offer(OfferType.STANDARD, BigDecimal.valueOf(20.0)),
new Offer(OfferType.STANDARD, BigDecimal.valueOf(30.0)),
new Offer(OfferType.BONUS, BigDecimal.valueOf(5.0)),
new Offer(OfferType.BONUS, BigDecimal.valueOf(5.0)));
Ожидаю следующий результат
[Offer [type=STANDARD, price=10.0], Offer [type=BONUS, price=5.0], Offer [type=BONUS, price=5.0]]
Существует ли однострочный оператор (с использованием потоков или любой сторонней библиотеки), который позволяет это сделать?