Description
Implement
Shop.getCustomerWithMaximumNumberOfOrders()andCustomer.getMostExpensiveOrderedProduct()using max, min, maxBy, or minBy.
max, min, maxBy, もしくは minBy を使用して、
Shop.getCustomerWithMaximumNumberOfOrders()およびCustomer.getMostExpensiveOrderedProduct()を実装してください。
listOf(1, 42, 4).max() == 42
listOf("a", "ab").minBy { it.length } == "a"
Code
// Return a customer whose order count is the highest among all customers
fun Shop.getCustomerWithMaximumNumberOfOrders(): Customer? = customers.maxBy { it.orders.size }
// Return the most expensive product which has been ordered
fun Customer.getMostExpensiveOrderedProduct(): Product? = orders.flatMap { it.products }.maxBy { it.price }
Memo
- 以下の関数は、オブジェクトが
Comparableインタフェースを実装している必要がある max... 最大要素min... 最小要素maxBy... ラムダ内で指定した値での最大要素minBy... ラムダ内で指定した値での最小要素